Рассылка закрыта
При закрытии подписчики были переданы в рассылку "BloggLand и Я | Блоггландия" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
В десятом выпуске рассылки '.Net Собеседник' вы можете познакомиться с обзором
Информационный Канал Subscribe.Ru |
.Net Собеседник #10
Содержание- От автора
- Обзор новостей
- 9 лучших советов по доступу к данным
- Время кода - Загрузка файлов на сервер – это легко!
- Форумы .Net на www.sql.ru
От автора
Здравствуйте, коллеги!
DataColumn myColumn = new DataColumn();
|
{К содержанию}
Обзор новостей
-
Вышел .netCHARTING
2.3 с бесплатной версией для разработчика
- Версия 2.3 содержит улучшенную обработку пустых элементов, поддержку аннотаций, вычисление трендов, новые настройки палитры, многоцветные линии областей, доступ к изображениям в формате bmp, поддержку пояснений для изображений, новую документацию и многое, многое другое. Скачать бесплатную и другие версии можно здесь.
-
Ищем бета-тестеров
- DocSoft. Inc. разрабатывает ПО для конвертации CGM в SVG, которое будет конвертировать формат WebCGM (CGM4) в формат Scalable Vector Graphic (SVG). ПО будет содержать API, которое можно интегрировать с другим ПО и расширять его функциональность. ПО разрабатывается для работы под Microsoft's .NET Framework и будет позволять выполнять пакетную конвертацию файлов.
-
Открыт Visual
Studio Extensibility Center
- Здесь вы сможете найти информацию о том как настроить, улучшить или расширить функциональность среды Visual Studio, включая настройку макросов, добавлений и Visual Studio Industry Partner Program (VSIP) SDK.
-
Chive
Software выпустила PopupCalendar ASP.NET V2.0
- PopupCalendar ASP.NET - полнофункциональный календарь, появляющийся только тогда, когда вы щёлкаете мышью на специальном изображении. Компонент PopupCalendar ASP.NET отображается во всплывающем окне и исчезает, когда вы щёлкаете мышью за его пределами.
-
Вышел .netCHARGE 3.0 Payment
Processing
- Более чем 35 поддерживаемых шлюзов и процессоров, включая их прямую поддержку (больше не платим шлюзам!), .netCHARGE создаёт цельную систему по обработке кредитных карточек в реальном времени с вашего веб-сайта ASP.NET.
-
Desaware
поставляет исходники с Universal .NET 2004
- Universal .NET 2004 - комплексное решение для .NET, включающее исходный код для девяти индивидуальных продуктов набора: SpyWorks Pro; StateCoder; NT Service Toolkit .NET; StorageTools; Event Log Toolkit; OneTimeDownload-5M; LineGraph-5M; INIFileTool-5M и компонента File Property. 41 элемент управления и библиотеки, а также 780,000 строк кода. $495.00.
-
Вышел
ToolThemeBox .NET 1.0
- Многоцелевой набор элементов, упрощающий разработку пользовательского интерфейса, касающегося панелей управления и сложных элементов управления с поддержкой тем WinXP и стилей Office 2003. Включает API для работы со схемами WinXP и расширенные классы ControlPaintTheme. Позволяет создавать градиентные и плоские визуальные стили.
-
Elementool
представила онлайновое приложение помощи корпоративным пользователям
- Новое решение поможет корпорациям улучшить поддержку клиентов без привлечения сложных IT-решений или дорогих лицензий и больших отчислений.
-
BillG
приветствовал разработчиков на конференции в Сан-Франциско
- 24 марта Bill Gates открыл конференцию в San Francisco, которая также включает шоу Fawcette VSLive!; Microsoft представило не сколько новых инициатив на этом шоу, включая новую программу VSIP, пререлиз Visual Studio 2005 (официальное имя для Whidbey) и два новых ресурса ASP.NET.
Вдобавок, Microsoft подтвердила намерение поставлять Crystal Reports с VS2005, несмотря на утверждениях о конфликте интересов этой компании с собственной разработкой Microsoft - SQL Server Reporting Services. - 24 марта Bill Gates открыл конференцию в San Francisco, которая также включает шоу Fawcette VSLive!; Microsoft представило не сколько новых инициатив на этом шоу, включая новую программу VSIP, пререлиз Visual Studio 2005 (официальное имя для Whidbey) и два новых ресурса ASP.NET.
-
Предлагается коммерческая C#
криптобиблиотека
- Certicom, коммерческий поставщик криптографических алгоритмов и ПО, выпустил ‘первый коммерческий набор инструментов для разработчикадля Microsoft .NET Framework и .NET Compact Framework’. Согласно информации на сайте, набор включает инструментарий для управления цифровыми сертификатами и ‘полный’ SSL/TLS инструментарий.
-
Resolvecorp выпустила XC#
версии 2.0
- XC#, язык, предлагающий настраиваемые расширения компилятора для языка C#, был выпущен в виде версии2.0. Вдобавок ко встроенным особенностям, также предлагается расширяемая система, с помощью которой разработчики могут встраивать свои расширения в язык.
Версии 1.x бесплатны, а 2.0 является коммерческим продуктом, ценою менее $200. - XC#, язык, предлагающий настраиваемые расширения компилятора для языка C#, был выпущен в виде версии2.0. Вдобавок ко встроенным особенностям, также предлагается расширяемая система, с помощью которой разработчики могут встраивать свои расширения в язык.
- FIX: .NET Framework 1.1 WSDL with Visual Studio .NET 2003 hotfix rollup
- BUG: The CheckedListBox control does not fire the KeyPress event when the key value is a space character
- BUG: An exception does not propagate correctly to the calling function in a Windows Forms application project in Visual Studio .NET
- FIX: The IntelliSense feature for a Visual C# .NET project stops working in the Visual Studio .NET IDE
9 лучших советов по доступу к данным
9 лучших советов по доступу к данным
ЯЗЫК: C#
Автор статьи: Jeffrey Hasan и Kenneth Tu, www.aspnetpro.com
ПЕРЕВОД: Чужа В.Ф. ака hDrummer
Используйте советы из этого списка для того, чтобы ваш код был эффективен.
-
Использование подходящего объекта доступа к данным
- Разумным подходом при разработке приложения станет использование наиболее подходящего объекта доступа к данным ADO.NET для вашего сценария. Всегда используйте объект класса DataReader для простого чтения данных. Используйте объект DataSet для операций обновления данных только в том случае, если вы выполняете обновление в отсоединённом режиме. (В качестве альтернативы, вы можете написать специальные хранимые процедуры, которые будут производить для вас эти обновления). Используйте объект DataView, если вы хотите работать с отфильтрованными представлениями объёмного объекта класса DataSet. Объект DataView имеет много преимуществ при использовании с объектом DataSet, реализую их практически без всяких издержек.
-
Используйте хранимые процедуры, а не вставленный код на T-SQL
- Общепринятым подходом для T-SQL является компиляция вашего кода для манипуляции данными (Data Manipulation Language - DML) в хранимые процедуры (ХП). Хранимые процедуры выполняются намного быстрее, чем простые T-SQL выражения, поскольку они прекомпилируются на сервере баз данных и являются повторно используемым кодом. Объект Command ADO.NET позволяет исполнять встроенные T-SQL выражения, непосредственно присваивая выражение свойству CommandText и устанавливая перечисление CommandType в Text. Все мы знакомы с кодом, в котором строка с T-SQL выражением строится динамически. Но вы должны стараться избегать такого подхода. Не только потому, что непосредственное исполнение кода T-SQL является более медленным, но и потому, что вы можете допустить ошибки при построении такой строки, которые, в свою очередь, приведут к ошибкам времени исполнения. Что ещё хуже, в случае исполнения динамического T-SQL кода, можно нечаянно позволить приложению выполнения команды модификации структуры СУБД (например, удалить таблицу). Всегда пользуйтесь хранимыми процедурами и используйте входные параметры (желательно строго типизированные).
- Вы можете минимизировать возвращаемый набор данных, возвращая только те записи, которые действительно необходимы. Это особенно важно для наборов данных, которые будут передаваться клиентам веб-приложений. Также избегайте использования специальных символов * в SQL-запросах; всегда точно указывайте поля, которые вы хотите получить в выборке.
- Используйте сложные ХП, а не множество запросов к разным ХП
- Используйте сложные ХП, возвращающие несколько наборов данных, а не несколько вызовов к различным ХП. ADO.NET позволяет легко работать с несколькими возвращёнными наборами данных. Например, можно использовать метод NextResult объекта SqlDataReader. Вот пример кода, позволяющего пройти по всем записям каждого возвращенного набора данных:
sqlDR = objDB.RunQueryReturnDR("MyStoredProcedure") ;
int totalResultSets = 10; int i = 0;
string[] arrResult = new string[totalResultSets];
do {
while (sqlDR.Read())
//позиционируемся на первой записи
{
arrResult[i] = sqlDR["ProductNumber"].ToString();
i + = 1;
}
}
while (sqlDR.NextResult());
// Переходим к следующему набору данных
- Используйте тип данных SQL с SQL Server
- .NET Framework и SQL Server используют различные типы данных, которые не всегда корректно конвертируются друг в друга. Пространство имён System.Data.SqlTypes содержит набор структур каркаса .NET, которые представляют типы данных SQL Server в управляемой среде выполнения. Вдобавок, класс SqlDataReader содержит методы, автоматически отображающие полученные поля в соответствующие структуры. Старайтесь всегда использовать типизированные методы при полученные данных из SQL Server’a для того, чтобы избежать ошибок конвертации типов.
- Использование пула соединений
- Всегда используйте пул соединений. Управляемый провайдер SQL Server’a поддерживает пул соединений по умолчанию, требуя от вас лишь небольших усилий. Большая часть работы, которую нам необходимо проделать – модифицировать строку соединения для переопределения настроек по умолчанию.
- Для доступа к данным используйте централизованные функции
- Всегда помещайте функции для доступа к данным в отдельном файле, что позволит вам упростить написание и поддержку кода. Класс для доступа к данным может содержать реализацию функций, выполняющих основные операции доступа к данным – например, выполнение хранимой процедуры и последующий возврат DataReader, DataSet, XmlReader или вовсе без возвращаемого значения.
- Такие функции могут инкапсулировать детали установки соединения или объекта Command, а также какие дополнительные действия. Этот код является повторяющимся, и наверняка вам не хотелось бы иметь разбросанные одинаковые конструкции по всему коду. Такой код не только тяжело сопровождать – он оказывает существенное влияние на размеры приложения.
- Microsoft предлагает .NET компонент Microsoft Application Blocks for .NET, содержащий оптимизированные функции-обёртки для доступа к данным. Если вы заинтересовались, то по этой ссылке вы можете узнать об этом больше http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp.
- Пользуйтесь здравым смыслом программиста
- Управляемая среда выполнения .NET содержит сборщик мусора, спроектированный с учётом оптимизации используемых ресурсов и выполняющий удаление ненужных ссылок. Однако вы всегда должны придерживаться правил, которые будут способствовать эффективность и легкочитаемости вашего кода. В частности, всегда очищайте ссылки на объекты, если эти объекты вы больше не собираетесь использовать. Если вы используете соединение, старайтесь держать его открытым необходимый минимум времени. Открывайте соединение перед его использованием и закрывайте сразу после того, как вы закончили с ним работать. Не оставляйте открытые соединения в вашем коде, особенно если вы работаете с такими объектами, как DataReader. Вобщем, своевременное закрытие соединений и очистка неиспользуемых ссылок на объекты – это действительно хороший стиль кодирования, производящий приятное впечатление.
- Правильно используйте обработку исключений
- Обработка исключений – дело дорогое, особенно в случае необходимости вывода ошибки. Поэтому старайтесь реализовывать структурированную обработку ошибок в приложениях, но разрабатывайте свой код так, чтобы избегать попадания в обработчики исключений. Это может показаться очевидным для всех, кроме тех разработчиков, которые использовали классический ASP. Они помнят, что код часто содержал конструкции On Error Resume Next, что позволяло коду продолжать своё выполнение после возникновения ошибки. Такой подход не является хорошим стилем в среде .NET. Пишите свой код так, чтобы необходимость в использовании обработчиков исключений появлялась только в самых крайних случаях. Используйте множество доступных проверочных функций для выявления ошибок до того, как компилятор будет вынужден сгенерировать ошибку времени выполнения.
- Самостоятельно вызывайте исключения только в случае крайней необходимости, поскольку эта операция дорогостояща. Классы исключений предлагают большое количество информации, которая может остаться неиспользованной вызывающим кодом, который получает исключение. В этом случае лучше вызвать пользовательскую ошибку, использовав Err.Raise, чем вызывать исключение. Такой вызов передаёт основную информацию об ошибке – её номер, источник и сообщение, но не содержит неиспользуемую и очень объёмную информацию, такую, как стэк.
- И наконец, если вы используете более чем один catch с разными критериями фильтрации исключений, не забывайте размещать их в порядке от более специфичного к более общему. Например:
try
{...}
catch (SqlException SqlErr){…}
catch (Exception err){…}
finally{}- Используйте вспомогательные технологии
- ASP.NET содержит технологии, дополняющие ADO.NET в части обеспечения оптимизированного доступа к данным. В частности, ASP.NET поддерживает большой набор видов кэширования, начиная от кэширования на уровне страницы до кэширования данных с использованием Cache API. Кэширование важно учитывать при разработке приложения ASP.NET, ведь намного быстрее считать данные из кэша, чем повторно обращаться за ними к источнику данных. Единственный серьёзный минус в случае использования кэширования – необходимость предусмотреть в реализации механизма кэширования механизм обновления данных для того, чтобы данные в кэше соответствовали данным в хранилище.
- Общепринятым подходом для T-SQL является компиляция вашего кода для манипуляции данными (Data Manipulation Language - DML) в хранимые процедуры (ХП). Хранимые процедуры выполняются намного быстрее, чем простые T-SQL выражения, поскольку они прекомпилируются на сервере баз данных и являются повторно используемым кодом. Объект Command ADO.NET позволяет исполнять встроенные T-SQL выражения, непосредственно присваивая выражение свойству CommandText и устанавливая перечисление CommandType в Text. Все мы знакомы с кодом, в котором строка с T-SQL выражением строится динамически. Но вы должны стараться избегать такого подхода. Не только потому, что непосредственное исполнение кода T-SQL является более медленным, но и потому, что вы можете допустить ошибки при построении такой строки, которые, в свою очередь, приведут к ошибкам времени исполнения. Что ещё хуже, в случае исполнения динамического T-SQL кода, можно нечаянно позволить приложению выполнения команды модификации структуры СУБД (например, удалить таблицу). Всегда пользуйтесь хранимыми процедурами и используйте входные параметры (желательно строго типизированные).
ASP.NET и .NET Framework содержат возможности, которые можно использовать как вспомогательные технологии для доступа к данным. Поэтому помните, что используя ASP.NET для написания приложений, вы имеете доступ ко всем классам .NET платформы, что само по себе уже является большим преимуществом – как в случае доступа к данным, так и в других случаях.
Время кода
Загрузка файлов на сервер – это легко!
ЯЗЫК: C#
АВТОР: Brad McCabe, http://www.aspnetpro.com/
ПЕРЕВОД: Чужа В.Ф ака hDrummer
<HTML>
<body> <form enctype="multipart/form-data" runat="server" ID="Form2"> Выберите файл для загрузки: <input id="UploadFile" type="file" runat="server" NAME="UploadFile"> <asp:Button id="Button1" runat="server" Text="Загрузка"> </asp:Button> </form> </body> </HTML> |
Теперь добавьте одну строчку кода в событие onClick кнопки:
{К содержанию}
Форумы .Net - вопросы оставшиеся без ответа
Большие
объемы с помощью ADO .NET
Status Bar
У кого нибудь есть книга Wrox: Professional WebServices ???
WinForms: вопрос по Binding
Управление IIS
Проблема с PictureBox
c1MainMenu & c1ToolBar картинки
Help!
Исходник TreeView на VB.NET
Безопасность на основе форм
события в UserControl и оповещение страницы
Почему на 2000 Server получаю SERVER APPLICATION NOAVALIBLE?
кодировка письма
Как связать БД и веб страницу?
Работа с полем Image ???
На этом десятый выпуск .Net Собеседника закончен.
До следующего номера.
Чужа Виталий Ф. aka hDrummer,
hdrummer@sql.ru - жду ваши предложения, вопросы и замечания.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||