Рассылка закрыта
При закрытии подписчики были переданы в рассылку "BloggLand и Я | Блоггландия" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
№42 рассылки '.Net Собеседник':
Информационный Канал Subscribe.Ru |
.Net Собеседник #42
Содержание- От автора
- Обзор новостей
- На что взглянуть в ASP.NET 2.0
- Время кода - Быстрое чтение и запись конфигурационных файлов
- Форумы .Net на www.sql.ru
От автора
Здравствуйте, коллеги!
На этом всё- желаю интересного чтения.
Обзор новостей
-
Microsoft объявляет о датах
поставок новых продуктов
- Microsoft объявила, что 7 ноября будет выпущено несколько новых продуктов - Visual Studio 2005, SQL Server 2005 и BizTalk Server 2006. BizTalk Server 2006 будет официально выпущен, но широко доступен только с начала 2006 года.
-
Australian Software Company
выпустила SQL Delta 3.1
- SQL Delta – высокоэффективный инструмент сравнения схем и данных в SQL серверах, предназначенный для анализа и синхронизации БД.
-
Quiksoft Corp выпустила EasyMail.Net Verify
- Корпорация Quiksoft выпустила EasyMail.Net Verify. Этот компонент .Net позволит легко и аккуратно проверять в приложениях .Net адреса email в режиме реального времени. Цена $149 за лицензию на 1 ПК; $299 для разработчика.
-
Mono CD
- Запущен сайт Mono Live детище Joseph Hill’a. Они предлагают Live CD Mono для тех, кто хочет попробовать разрабатывать на этой платформе. CD включает Mono, много приложений на Mono. Инструменты разработчика: Mono, MonoDoc, MonoDevelop. Веб-порталы: форумы ASP.NET, mojoPortal, IBuySpy. Настольные приложения: Beagle, F-Spot, Tomboy, Muine. ISO лежит здесь http://go-mono.com/archive/live-cd/hoary-mono-live_1_0-i386.iso.
-
Лето кода
- Google спонсирует студентов-разработчиков под Mono, предлагается приз в $4,500.
-
Microsoft
открыла новый сайт для ОС Windows «Longhorn»
- Сайт находится здесь - http://www.microsoft.com/windows/longhorn/default.mspx.
-
Обновился .netCHARGE 4.5
- Обработка кредитных карт в режиме реального времени – поддержка более 40 шлюзов.
Статья номера
На что взглянуть в ASP.NET 2.0
ЯЗЫК: C#
Автор статьи: Jinath Premaratne
ПЕРЕВОД: Чужа В.Ф. ака hDrummer
Вступление
Цель статьи – обратить ваше внимание на некоторые особенности ASP.NET 2. Статья базируется на beta 1 asp.net 2. Несколько последних лет мы обсуждали asp.net 1 /1.1, а также каким образом изменилась жизнь программиста. Теперь поговорим о asp.net 2 – последней революционной версии. Здесь так много новых вещей, о которых стоит поговорить, от простых компонент логина до управления ролями. В этой статье опишу просто несколько революционных вещей, на которые следует обратить внимание.
Производительность
Говоря о производительность разработчика, Microsoft утверждает, что в ASP.NET версии 2 необходимо на 70% меньше кодирования, чемв asp.net 1.1. Один из примеров – новый элемент управления GridView. Он имеет встроенную способность разбиения на страницы, сортировки и редактирования. После создания объекта Data Source и назначения его этому элементу управления (ЭУ), вам необходимо сделать только небольшие изменения в окне свойств или в коде html для включения разбивки на страницы или сортировки. Никакого дополнительного кода не требуется, asp.net будет делать всё это за вас и так. Вот как выглядит html.
<asp:GridView ID='GridView1' Runat='server' DataSourceID='SqlDataSource1' AutoGenerateColumns='False' AllowPaging='True' PageSize='5' AllowSorting='True'> |
Эффективность
Если говорить об эффективности ASP.NET 2, то, прежде всего она
включает новые возможности по кэшированию, интегрированную с Microsoft SQL
Server и называемую «недостоверность кэша SQL». Теперь вы можете создавать
зависимости кэша от таблиц Sql. При использовании «недостоверного кэша SQL»,
при изменении таблицы, ASP.NET получит последнее время её изменения с сервера и
изменит её, не взирая на установленную продолжительность жизни кэша.
ЭУ для мобильных устройств?
ASP.NET 2 может определять целевую платформу – т.е. веб-страница будет работать как в веб-браузере, так и в мобильном телефоне. Тэги <asp:> будут исполнять весь рендеринг. И уже нет необходимости использовать отдельные тэги <mobile:>. Серверные ЭУ ASP.NET теперь могут рендериться от HTML до WML.
Логин пользователя
Общей задачей при разработке веб-приложений является обеспечение безопасности и управления ролями. В asp.net 2 теперь нет необходимости создавать формы входа – они встроены в виде ЭУ и имеют новый API для обработки членства пользователей и управления ролями. Для хранения пользователей и ролей, asp.net 2 использует БД MS Access, однако возможно это делать и в SQL Server и в AD. Ну а в принципе можно использовать любое хранилище данных – например Оракл, если он вам больше нравится.
Персонализация
Это ещё одна приятная новость в ASP.NET 2. Появилась возможность персонализации приложения и сохранения персонализированных установок. Это значит, что приложение может сохранять настройки цвета, стиля, шрифтов и т.п. согласно пользовательским установкам. Используя API персонализации, наряду с управлением ролями и членством, можно строить действительно настраиваемые пользователем приложения.
Каркасы порталов и веб-детали (Web Parts)
Проще говоря, каркасы порталов и веб-детали – это страницы, которые могут быть настроены пользователем. Веб-детали содержат объекты в каркасе портала, которые конечный пользователь может открыть, закрыть, минимизировать, максимизировать или переместить из одной веб-детали в другую. Каркас портала позволяет компилировать страницы, содержащие веб-детали, которые представлены теперь в виде ЭУ. Это менеджер веб-деталей, зоны веб-деталей, каталог зон веб-деталей. Хороший пример – зона администрирования пространства MSN space. Там можно изменять расположение, открывать или закрывать ваши веб-детали.
Мастер-страницы
Мастер-страницы – это пример визуального наследования. Обычно веб-сайт имеет один заголовок, меню и подвал для всех страниц. Раньше разработчикам приходилось включать эти элементы в страницу каждый раз, а теперь достаточно создать мастер-страницу, которая будет базовой для всех остальных страниц.
Администрирование и Менеджмент
Новые серверные ЭУ
В Asp.net 2 есть новые серверные ЭУ.
- Gridview отображает данные, легко настраивается под множество задач.
- Набор ЭУ, называемых Data Source Object, которые будут работать с БД – соединение, добыча данных, манипулирование данными, сортировка, разбиение на страницы, редактирование и т.п.
- Набор ЭУ для обработки пользовательского логина и управления пользователями
- ЭУ для создания веб-деталей
- ЭУ для навигации по сайту и меню – базируются на использовании XML
- Долгожданный ЭУ дерево (TreeView)
- И многое другое
<script language="javascript"> function print(){ alert("No More Tsunami"); } </script> <asp:ButtonID = "Button1" Runat = "server" OnClientClick = "javascript:print()" Text ="Button" /> |
Жизнь всё легче, не так ли?
Работаем с данными
В asp.net 1\1.1 для отображения данных необходимо было выполнить
несколько шагов – создать объект –соединение, создать адаптер с командой
select, создать набор данных DataSet, связать его с адаптером, затем с сеткой
данных и вызвать метод связывания.
Теперь всё проще – можно не писать ни строчки кода. Например, для отображения
данных из SQL Server в виде сетки, необходимо написать вот такой HTML:
<asp:GridView ID="GridView1" Runat="server"
DataSourceID="SqlDataSource1" AllowSorting="true"> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT * FROM [Students]" ProviderName="System.Data.SqlClient" ConnectionString="Server=.;;Database=CDNUG;Persist Security Info=True"> </asp:SqlDataSource> |
Всё, что тут сделано – создан ЭУ GridView, ему присвоен DataSourceID в виде 'SqlDataSource1', который является ID моего SqlDataSource. А для SqlDataSource я установил значения свойств ID, SelectCommand, ProviderName и ConnectionString. Ивсё – теперь у вас есть страница с данными. Кроме SqlDataSource, asp.net имеет AccessDataSource, ObjectDataSource, DataSetDataSource и SiteMapDataSource, также можно создать свой собственный объект DataSource.
Visual studio 2005
Asp.net 2 поддерживает новую среду разработки Visual studio 2005, одним из преимуществ которой является наличие встроенного веб-сервера для разработки веб-приложений.
Выводы
С набором новых средств и существенно улучшенных существующих, Asp.Net 2 станет ключевойй технологией в мире веб-разработки. Стоит также вспомнить о нововведениях в языки Visual basic 8.0 и c# 2.0. В статье приведены лишь некоторые из особенностей ASP.Net 2.0, полную версию статьи вы сможете найти в журнале «Алгоритм» №3 за 2005 год.
Время кода
Быстрое чтение и запись конфигурационных файлов
ЯЗЫК: C#
Автор статьи: Chandar Ockumar
ПЕРЕВОД: Чужа В.Ф. ака hDrummer
Вступление
Эта статья подобна статье Ayende Rahien по считыванию конфигурационных файлов на C#, без использования функций Win32. Единственное отличие в том, что этот код более быстр и не зависит от данных в памяти, поскольку файл может быть изменён другим приложением, перед тем, как наше приложение его будет обрабатывать. Так что следующий код просто последовательно считывает файл, а после обнаружения нужной секции или ключа отрабатывает и закрывает файл. Недостаток такого подхода в том, что при каждом вызове функции происходит открытие и закрытие файла – нужна модификация или нет. Это плата за уверенность в том, что используются последние изменения, внесённые в файл..
using System; using System.IO; using System.Collections.Specialized; namespace IniMgr { public class IniTask { public static void SetIniString(string sFile, string Sec, string Key, string Val) { StreamReader sr = null; string nueLineChars = "\r\n"; // определяем символы перевода строки // но находим по умолчанию символы новой строки из // System.IO.TextWriter if(true) { StringWriter tw = new StringWriter(); nueLineChars = tw.NewLine; } string slines = null; if (File.Exists(sFile)) { bool reWrite = false; using ( sr = new StreamReader(sFile)) { String line; bool foundSection = false; while ((line = sr.ReadLine()) != null) { line = line.Trim(); if(line.Length > 1) { if(line[0] == '[') { int end = line.IndexOf("]"); if(end != -1) { string section = line.Substring(1, end-1); if(String.Compare(section,Sec,true)==0) { foundSection = true; slines += line + nueLineChars; continue; } else { if(foundSection == true) { // мы не нашли свой ключ, //поэтому добавляем его slines += Key + "=" + Val + nueLineChars;; slines += line + nueLineChars; line = sr.ReadToEnd(); slines += line; reWrite = true; break; } } } } if(foundSection == true) { string [] pair = line.Split('='); if(pair.Length > 1) { if(String.Compare(pair[0], Key,true) == 0) { line = Key + "=" + Val + nueLineChars; slines += line; line = sr.ReadToEnd(); slines += line; reWrite = true; break; } } } } slines += line + nueLineChars; } if(foundSection == false) { slines += "[" + Sec + "]" + nueLineChars; slines += Key + "=" + Val + nueLineChars; reWrite = true; } if(foundSection == true && reWrite == false) { slines += Key + "=" + Val + nueLineChars; reWrite = true; } } if( reWrite == true) { using (StreamWriter sw = new StreamWriter(sFile)) { sw.Write(slines); } } } else { slines = "[" + Sec + "]" + nueLineChars; slines += Key + "=" + Val + nueLineChars; using (StreamWriter sw = new StreamWriter(sFile)) { sw.Write(slines); } } } public static string GetIniString(string sFile, string Sec, string Key, string Val) { StreamReader sr = null; if (File.Exists(sFile)) { using ( sr = new StreamReader(sFile)) { String line; // считываем и отображаем строки // пока не достигнут конец файла bool foundSection = false; while ((line = sr.ReadLine()) != null) { line = line.Trim(); if(line.Length > 1) { if(line[0] == '[') { int end = line.IndexOf("]"); if(end != -1) { string section = line.Substring(1, end-1); if(String.Compare(section, Sec, true) == 0) { foundSection = true; continue; } else foundSection = false; } } if(foundSection == true) { string [] pair = line.Split('='); if(pair.Length > 1) { if(String.Compare(pair[0], Key, true) == 0) { Val = pair[1]; break; } } } } } } } return Val; } // ещё немного функциональности public static StringCollection GetSections(string sFile) { StreamReader sr = null; StringCollection myAL = new StringCollection(); if (File.Exists(sFile)) { using ( sr = new StreamReader(sFile)) { String line; // считываем строки, пока не достигнут конец файла while ((line = sr.ReadLine()) != null) { line = line.Trim(); if(line.Length > 1) { if(line[0] == '[') { int end = line.IndexOf("]"); if(end != -1) { string section = line.Substring(1, end-1); myAL.Add(section); } } } } } } return myAL; } public static StringCollection GetSectionKeys(string sFile, string Sec) { StreamReader sr = null; StringCollection myAL = new StringCollection(); if (File.Exists(sFile)) { using ( sr = new StreamReader(sFile)) { String line; // считываем строки, пока не достигнут конец файла bool foundSection = false; while ((line = sr.ReadLine()) != null) { line = line.Trim(); if(line.Length > 1) { if(line[0] == '[') { int end = line.IndexOf("]"); if(end != -1) { string section = line.Substring(1, end-1); if(String.Compare(section, Sec, true) == 0) { foundSection = true; continue; } else { if(foundSection == true) { break; } foundSection = false; } } } if(foundSection == true) { string [] pair = line.Split('='); if(pair.Length > 1) { myAL.Add(pair[0]); } } } } } } return myAL; } } } |
Вот и всё.
{К содержанию}
Форумы .Net - вопросы оставшиеся без ответа
DataView
и стиль
datalist
в локальных приложениях windows
dropdownlist
в DataGrid
Несколько
ДатаГридов с одинаковой шириной столбцов (динамической)???
Jscript
и тэг
DreamWeaver
- ПОМОГИТЕ !!!
StateImage
Icon in DataGrid
Позднее
связывание в Wordе
ICQ-клиент
На этом сорок второй выпуск .Net Собеседника закончен.
До следующего номера.
Чужа Виталий Ф. aka hDrummer, MCAD, MCDBA, MCP
hdrummer@sql.ru - жду ваши предложения и замечания.
Subscribe.Ru
Поддержка подписчиков Другие рассылки этой тематики Другие рассылки этого автора |
Подписан адрес:
Код этой рассылки: comp.soft.prog.dotnetgrains |
Отписаться
Вспомнить пароль |
В избранное | ||