Использован материал журнала КомпьютерПресс

Знакомство с Microsoft .NET Framework 2.0

Часть 1. Обзор основных изменений

Невозможно рассмотреть все изменения, произошедшие в библиотеках классов .NET Framework 2.0, поэтому все желающие более детально изучить этот вопрос, могут обратиться к онлайновой утилите Whidbey Inspector (http://www.dotnet2themax.com/DotNetBrowser/ShowAssemblies.aspx), которая позволяет сравнить сборки, пространства имен, типы, члены классов и т.п. в версиях 1.1 и 2.0 и быстро определить, были ли они добавлены, удалены или модифицированы по сравнению с предыдущей версией.

Windows-приложения на основе Windows Forms

В библиотеке классов .NET Framework 2.0 существенно расширен набор компонентов, применяемых для создания клиентских приложений с использованием Windows Forms (пространство имен System.Windows.Forms).

Помимо появления новых компонентов, используемых для реализации пользовательских интерфейсов Windows-приложений, произошли некоторые изменения в модели связи таких компонентов с источниками данных (Data Binding). Новый компонент DataConnector служит связующим звеном между интерфейсным элементом и источником данных и автоматически управляет функциями поддержки текущего состояния, события в источниках данных и изменения источников данных. DataConnector предназначен для совместного использования с такими компонентами, как DataNavigator и DataGridView.

Изменения в .NET Remoting

В новой версии для .NET Remoting реализованы поддержка адресации по протоколу IPv6 и возможность обмена обобщенными типами. Классы в пространстве имен System.Runtime.Remoting.Channels.Tcp поддерживают аутентификацию и шифрование на уровне интерфейса Security Support Provider Interface (SSPI).

Классы в новом пространстве имен System.Runtime.Remoting.Channels.Ipc позволяют приложениям, выполняемым на одном компьютере, обмениваться данными без использования сети.

В пространстве имен System.Runtime.Remoting.Channels добавлена поддержка безопасности на уровне каналов, вследствие чего канал TCP теперь поддерживает аутентификацию и шифрование, а также функции, улучшающие поддержку балансирования нагрузки.

XML.NET

В .NET Framework 2.0 включена поддержка языка XQuery, добавлено новое хранилище XML-данных (новая модель обработки XML-данных в памяти, поддерживающая как XML DOM, так и XPath), а также реализована технология отображения данных, хранимых в реляционной СУБД, на XML-представление или на объектное представление CLR.

К тому же расширена функциональность существующих XML-классов, включая поддержку типов для классов XmlReader, XmlWriter и XPathNavigator, новую модель создания объектов XmlReader и XmlWriter и новый процессор для преобразований XSLT: метод Compile позволяет откомпилировать описание трансформации, а метод Execute — выполнить предварительно откомпилированное описание.

Web-сервисы

Пространство имен System.Web.Services теперь поддерживает протокол SOAP 1.2 и элементы, которые могут иметь нулевые значения и базовый профиль WS-I Basic Profile 1.0 (http://www.ws-i.org/Profiles/Basic/2003-08/BasicProfile-1.0a.html).

Также реализована поддержка асинхронных вызовов методов Web-сервисов и добавлена возможность использования событийно-ориентированной модели вызова методов.

Класс System.Security.SecurityException

Расширения в классе System.Security.SecurityException предоставляют дополнительные данные, позволяющие более точно определить причины появления исключений, связанных с нарушениями безопасности. Новые свойства класса позволяют определить метод, в котором произошло исключение, зону или адрес сборки, операцию, вызвавшую исключение, а также действия на уровне стека — Deny или PermitOnly.

Расширенные сетевые функции

В библиотеке классов .NET Framework 2.0 появились изменения и дополнения, связанные с поддержкой сетевых функций. Например, класс NetworkChange позволяет приложениям получать нотификации об изменениях IP-адреса сетевого интерфейса, которые могут быть связаны с изменениями сетевой карты или адаптера, с отсоединением сетевого кабеля, с выходом компьютера за границы покрытия беспроводной сети или со сбоями в оборудовании.

В пространстве имен System.Net реализованы поддержка запросов от FTP-клиентов (расширенная функциональность классов WebRequest, WebResponse и WebClient), функции кэширования HTTP-ресурсов, механизмы автоматического обнаружения прокси и возможности получения информации о сетевом трафике и статистической информации.

Информация о сетевом трафике

Используя классы в пространстве имен System.Net.NetworkInformation, приложения могут получать информацию о сетевом трафике по протоколам IP, IPv4, IPv6, TCP и UDP. Также можно программно получать информацию об адресах и конфигурации локальных сетевых адаптеров, подобную той, которая возвращается утилитой ipconfig.exe.

Проверка доступности удаленных серверов

Класс Ping позволяет программно определить доступность удаленного компьютера, выполнив синхронный или асинхронный вызов.

Поддержка электронной почты

Используя классы в пространствах имен System.Net.Mail и System.Net.Mime, приложения могут выполнять рассылку электронной почты одному или нескольким получателям, включая CC- и BCC-адресаты.

Кэширование сетевых ресурсов

Классы в пространстве имен System.Net.Cache позволяют приложениям управлять кэшированием ресурсов, полученных с использованием классов WebRequest, WebResponse и WebClient. Пользователи могут применять предопределенные механизмы кэширования либо задавать собственные, причем как для каждого отдельного запроса, так и для всех запросов в рамках одной сессии.

Кроме того, расширена поддержка безопасности и увеличена производительность классов System.Net.Sockets.Socket и System.Uri.

Отметим, что ряд рассмотренных здесь сетевых функций доступен пользователям языка Visual Basic .NET через свойства и методы класса Network, расположенного в пространстве имен My.Computer.

Другие изменения и дополнения

Помимо рассмотренных выше, в библиотеке классов .NET Framework 2.0, появился ряд расширений, которые не относятся к конкретным категориям.

Расширения для консольных приложений

Расширенная функциональность для консольных приложений (класс Console) включает возможности управления размерами консольного окна и экранного буфера, перемещением окна в экранном буфере, что может потребоваться для реализации простой анимации, для управления цветами текста и фона консольного окна, размером и видимостью курсора, а также длительностью и частотой подачи звуковых сигналов.

Расширения функций ввода-вывода

Ряд классов, связанных с операциями ввода-вывода, получил расширенную функциональность, за счет чего упрощены операции чтения и записи текстовых файлов, а также получения информации об устройствах. Классы, расположенные в пространстве имен System.IO.Compression, могут использоваться для чтения и записи данных, упакованных с помощью алгоритма GZIP.

Поддержка последовательных портов

Новый класс SerialPort предоставляет программный доступ к последовательным портам компьютера и позволяет управлять устройствами, подключенными к этому порту. С помощью данного класса можно выполнять синхронные или событийно-ориентированные операции ввода-вывода, обращаться к соответствующим драйверам, а также производить потоковые операции ввода-вывода, используя наследники класса BaseStream.

Отметим, что пользователи Visual Basic .NET также могут обращаться к COM-портам через объект My.Computer.Ports.

Активация приложений через манифест

Поддержка приложений, запускаемых по технологии ClickOnce, реализована через механизмы загрузки и активации на базе манифеста. Традиционно приложения запускаются через ссылку на сборку, которая содержит точку входа в приложение. Двойной щелчок мышью по исполняемому файлу приложения (*.exe) в оболочке Windows приводит к загрузке CLR и к передаче управления точке входа в главной сборке данного приложения.

Модель активации на базе манифеста использует манифест, а не сборку для активации приложения. Манифест полностью описывает приложение, сборки, от которых оно зависит, требования безопасности и прочую информацию, необходимую для активации приложения. Модель активации на базе манифеста имеет ряд преимуществ по сравнению с активацией сборок, что особенно важно для Web-приложений. Например, манифест содержит требования безопасности, которые позволяют пользователю без собственно загрузки кода принять решение о том, разрешать ли выполнение приложения.

     

Запуск приложений по технологии ClickOnce позволяет развертывать клиентские приложения с Web-сервера, запуская их по ссылке, содержащей адрес файла с манифестом данного приложения. После того как манифест загружен, активизируется специальный сервис Windows — Click-Once Host, который проверяет содержимое файла манифеста, загружает необходимые для функционирования приложения сборки, устанавливает ссылки на приложение и создает новый элемент стартового меню.

 

Модель активации на базе манифеста предоставляет набор программных интерфейсов, позволяющих приложениям-хостам активировать приложения и расширения, описанные в манифесте. Базовая функциональность активации на базе манифеста реализована в методе AppDomain.ExecuteManifest класса AppDomain.

Реклама