Нашли ошибку или опечатку? Выделите текст и нажмите

Поменять цветовую

гамму сайта?

Поменять
Обновления сайта
и новые разделы

Рекомендовать в Google +1

Общеязыковая инфраструктура CLI

75

К удивлению большинства разработчиков, сборки .NET могут разрабатываться и выполняться в средах операционных систем производства не Microsoft, в частности — в Mac OS X, различных дистрибутивах Linux, Solaris, а также на устройствах типа iPhone производства Apple (через API-интерфейс MonoTouch). Чтобы понять, что делает подобное возможным, необходимо рассмотреть еще одну используемую в мире .NET аббревиатуру — CLI, которая расшифровывается как Common Language Infrastructure (Общеязыковая инфраструктура).

Вместе с языком программирования C# и платформой .NET в Microsoft был также разработан набор официальных документов с описанием синтаксиса и семантики языков C# и CIL, формата сборок .NET, ключевых пространств имен и технических деталей работы гипотетического механизма исполняющей среды .NET (названного виртуальной системой выполненияVirtual Execution System (VES)).

Все эти документы были поданы в организацию Ecma International и утверждены в качестве официальных международных стандартов. Среди них наибольший интерес представляют:

  • документ ECMA-334, в котором содержится спецификация языка C#

  • документ ECMA-335, в котором содержится спецификация общеязыковой инфраструктуры (CLI)

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

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

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

Хорошая новость состоит в том, что в главных дистрибутивах .NET библиотеки CLI дополняются совместимыми с Microsoft эквивалентами ASP.NET, ADO.NET и Windows Forms, чтобы предоставлять полнофункциональные платформы для разработки приложений производственного уровня. На сегодняшний день популярностью пользуются две основных реализации CLI (помимо самого предлагаемого Microsoft и рассчитанного на Windows решения).

Пройди тесты