Использован материал журнала КомпьютерПресс
Невозможно рассмотреть все изменения, произошедшие в библиотеках классов .NET Framework 2.0, поэтому все желающие более детально изучить этот вопрос, могут обратиться к онлайновой утилите Whidbey Inspector (http://www.dotnet2themax.com/DotNetBrowser/ShowAssemblies.aspx), которая позволяет сравнить сборки, пространства имен, типы, члены классов и т.п. в версиях 1.1 и 2.0 и быстро определить, были ли они добавлены, удалены или модифицированы по сравнению с предыдущей версией.
В библиотеке классов .NET Framework 2.0 существенно расширен набор компонентов, применяемых для создания клиентских приложений с использованием Windows Forms (пространство имен System.Windows.Forms).
Помимо появления новых компонентов, используемых для реализации пользовательских интерфейсов Windows-приложений, произошли некоторые изменения в модели связи таких компонентов с источниками данных (Data Binding). Новый компонент DataConnector служит связующим звеном между интерфейсным элементом и источником данных и автоматически управляет функциями поддержки текущего состояния, события в источниках данных и изменения источников данных. DataConnector предназначен для совместного использования с такими компонентами, как DataNavigator и DataGridView.
В новой версии для .NET Remoting реализованы поддержка адресации по протоколу IPv6 и возможность обмена обобщенными типами. Классы в пространстве имен System.Runtime.Remoting.Channels.Tcp поддерживают аутентификацию и шифрование на уровне интерфейса Security Support Provider Interface (SSPI).
Классы в новом пространстве имен System.Runtime.Remoting.Channels.Ipc позволяют приложениям, выполняемым на одном компьютере, обмениваться данными без использования сети.
В пространстве имен System.Runtime.Remoting.Channels добавлена поддержка безопасности на уровне каналов, вследствие чего канал TCP теперь поддерживает аутентификацию и шифрование, а также функции, улучшающие поддержку балансирования нагрузки.
В .NET Framework 2.0 включена поддержка языка XQuery, добавлено новое хранилище XML-данных (новая модель обработки XML-данных в памяти, поддерживающая как XML DOM, так и XPath), а также реализована технология отображения данных, хранимых в реляционной СУБД, на XML-представление или на объектное представление CLR.
К тому же расширена функциональность существующих XML-классов, включая поддержку типов для классов XmlReader, XmlWriter и XPathNavigator, новую модель создания объектов XmlReader и XmlWriter и новый процессор для преобразований XSLT: метод Compile позволяет откомпилировать описание трансформации, а метод Execute — выполнить предварительно откомпилированное описание.
Пространство имен 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 предоставляют дополнительные данные, позволяющие более точно определить причины появления исключений, связанных с нарушениями безопасности. Новые свойства класса позволяют определить метод, в котором произошло исключение, зону или адрес сборки, операцию, вызвавшую исключение, а также действия на уровне стека — 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.