Основные возможности, которые предоставляет среда CLR:
• поддержка стандартных типов и правил создания новых типов;
• межъязыковая интеграция:
– включение в код на одном ЯП классов на другом ЯП;
– обработка исключений из программы на одном ЯП программой на другом ЯП;
– и т. д.
• единый набор библиотек классов для всех поддерживаемых ЯП;
• самоописываемые компоненты – не требуют дополнительных файлов (IDL, TLB, Proxy/Stub и т. п.); компонент является самодостаточным, имеет всю необходимую информацию для встраивания его в программный продукт и разворачивания;
• поддержка версий компонентов и сборок кода;
• сервисы безопасности (запрет неавторизованного доступа к ресурсам для пользователей – Role-Based Security, доступ на основе безопасности кода – Code-Based Security и автор кода, версия сборки и др.).
Рассмотрим работу универсальной системы типизации (рис. 8.4).
В основе лежит понятие базисного типа, который в. NET называется System.Object (это очень похоже на Java). Он делится на две категории – типы-ссылки и типы-значения, при этом типы-значения и типы-ссылки различным образом хранятся и используются. Типы-значения при создании экземпляра класса каждый раз вводятся в память и т. д.
Типы-ссылки – это классы, интерфейсы, массивы, делегаты и т. д.
Типы-значения – это перечислимые типы структуры и простые типы, такие как целочисленный, логический и т. д. Все типы, определяемые пользователями, фактически являются типами-ссылками. Таким образом, имеет место строгая иерархия классов.
Рис. 8.4.Универсальная система типизации (UTS)
В основе архитектуры. NET лежит понятие «сборка».
Сборка кода(assembly) – группа ресурсов, типов и метаданные, описывающие эти ресурсы и типы, необходимые для функционирования компонентов. Сборка реализуется как единое целое. Сборка – это самодостаточная единица кода.
К особенностям сборок кода прежде всего относятся следующие:
• сборка распространяется и реализуется как единое целое;
• метаданные сборки содержат информацию о зависимостях между ресурсами, версиях и т. п.;
• сборка характеризуется номером версии (последняя, специфичная и т. п.).
На уровне сервисов архитектура выглядит следующим образом:
• принцип. NET – «ПО как сервис»;
• следующий уровень архитектуры – уровень сервисов (рис. 8.5);
• сервисы доступны на уровне классов любого ЯП для. NET.
На нижнем уровне архитектуры существуют системные сервисы Microsoft Windows. На более высоких уровнях – различные надстройки, сервисы для работы с данными, сервисы интерфейсные и т. д. Сервисы. NET находятся на более высоком уровне, чем сервисы для Windows.
Рис. 8.5.Архитектура. NET – уровень сервисов
И для любого языка программирования, который реализован для. NET, мы можем использовать эти системные сервисы. NET, это фактически просто элементы классов. NET, которые доступны для любого языка.
Абстрактная машина. NET.CLR располагается над уровнем сервисов ОС (Windows CE, Windows ME, Windows 2000, Windows.NET).
Системные сервисы располагаются над CLR (доступ – через библиотеки классов): доступ к функциям ОС, управление данными, отладка, другие сервисы и т. п.; еще выше – компоненты и сервисы для разработки веб-узлов, веб-сервисов, пользовательских интерфейсов (GUI).
Веб-приложения– архитектура клиент – сервер с доступом пользователей к данным через веб-браузер (технология ASP.NET).
Распределенные приложенияна основе иных механизмов удаленного взаимодействия компонентов XML Web Services – на основе открытых стандартов, NET Remoting – на основе внутренних протоколов Microsoft и целый ряд других подходов.
По сути, NET представляет собой виды базовых классов для сервисов:
• доступ к сервисам ОС (Windows CE, ME, 2000, NET);
• доступ к графическим функциям (двумерная графика, обработка изображений, шрифты, в том числе технология ClearType, интеграция с GDI и DirectX);
• сетевые функции;
• управление потоками;
• глобализация;
• криптография;
• доступ к данным (библиотека классов ADO+ и OLE DB-драйверы);
• классы для средств разработки (отладка, трассировка, управление ресурсами, компиляция, установка ПО, протоколирование событий и т. д.);
• другие классы (в том числе поддержка протокола SOAP).
Читать дальше
Конец ознакомительного отрывка
Купить книгу