Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 35

Эндрю Троелсен

Замечание. При построении Web-приложений .NET не предполагается, что на машине конечного пользователя будет установлен каркас .NET Framework, поскольку браузер конечного пользователи просто получает общий HTML-код и, возможно, JavaScript-код клиента.

Платформенная независимость .NET

В завершение этой ставы позвольте мне сказать несколько слов по поводу независимости платформы .NET. Неожиданностью для многих разработчиков является то, что компоновочные блоки .NET могут разрабатываться и выполняться в операционных системах, отличных от операционных систем Microsoft (Mac OS X, многочисленные вариации Linux, в частности BeOS и FreeBSD и др.). Чтобы поднять, почему это возможно, мы с вами должны рассмотреть еще одну аббревиатуру, используемую во "вселенной" .NET: это аббревиатура CLI (Common Language infrastructure – общеязыковая инфраструктура).

Когда Microsoft выпустила язык программирования C# и платформу .NET, она выпустила также множество формальных документов, которые описали синтаксис и семантику языков C# и CIL, формат компоновочного блока .NET, базовые пространства имен и работу гипотетического механизма среды выполнения .NET (известного также под названием VES, или Virtual Execution System – виртуальная система выполнения). Еще лучше то, что все эти документы представлены в организации Ecma International (http://www.ecma-internatiоnal.org) для утверждения их в качестве официальных международных стандартов. Интересующими нас спецификациями являются:

• ECMA-334: спецификации языка C#;

• ECMA-335: общеязыковая инфраструктура (CLI).

Важность этих документов проясняется, если заметить, что они предоставляют третьим сторонам возможность строить дистрибутивы платформы .NET для любого числа операционных систем и/или процессоров. Спецификации ECMA-335, наверное, более "содержательны", поэтому они разбиты на пять разделов, как показано в табл. 1.5.

Таблица 1.5. Разделы CLI

Разделы ECMA-335 Описание
Раздел I. Архитектура Описывает общую архитектуру CLI, включая правила CTS и CLS, а также работу механизма среды выполнения .NET
Раздел II. Метаданные Описывает структуру метаданных .NET
Раздел III. CIL Описывает синтаксис и семантику CIL-кода
Раздел IV. Библиотеки Дает высокоуровневый обзор минимальных и полных библиотек классов, которые должны поддерживаться дистрибутивом .NET
Раздел V. Дополнения Коллекция "вспомогательных" элементов, таких гак рекомендации по проектированию библиотек классов и подробности реализации компилятора CIL 

Заметим, что в разделе IV (Библиотеки) определяется минимальное множество пространств имен, которые представляют только базовые сервисы, ожидаемые от CLI-дистрибутива (коллекции, консольный ввод-вывод, файловый ввод-вывод, поточная обработка, отображение, сетевой доступ, базовые средства защиты, XML-манипуляции и т.д.). Такой CLI-дистрибутив не определяет пространства имен, упрощающих разработку Web-приложений (ASP.NET), доступ к базам данных (ADO.NET) или построение графического интерфейса пользователя (Windows Forms).