Языки программирования

Так как управляемые приложения, разработанные с использованием всех доступных языков программирования на платформе .NET, компилируются не в инструкции процессора (машинные команды), а в операторы промежуточного языка CIL, то и выбор языка программирования становится практически вопросом личных предпочтений. Термин "общеязыковая" в словосочетании "общеязыковая исполняющая среда" указывает на то, что CLR безразлична к языку программирования. Microsoft поставляет компиляторы, создающие модули на промежуточном языке CIL, для четырех языков программирования: С#, C++, Visual Basic и JScript.

В .NET Framework Software Development Kit (SDK) входит и ассемблер CIL – ILASM, так что при желании можно писать приложения непосредственно на языке CIL. Разные компании поставляют компиляторы для других языков, включая Perl, Python, Eiffel и даже COBOL.

Независимо от языка программирования, на котором написаны управляемые приложения, они используют один и тот же интерфейс прикладного программирования (Application Program Interface, API): библиотеку классов .NET Framework FCL (Framework Class Library).

Управляемые модули

В результате обработки исходного кода программы компилятором, способным преобразовать его в операторы языка CIL, получается управляемый модуль (managed module), предназначенный для выполнения под управлением среды CLR. Файлы, содержащие такие модули, имеют такие расширения, как EXE, DLL или NETMODULE. Управляемые модули содержат следующие основные элементы:

  • заголовок файла Windows Portable Executable (РЕ);
  • заголовок CLR, содержащий такие сведения, как местоположение кода на языке CIL и метаданных;
  • метаданные, описывающие все типы данных, которые содержатся внутри модуля, и ссылки на другие используемые модули;
  • команды CIL, созданные на основе компиляции исходного текста.

Метаданные – это обязательный компонент управляемого модуля, их создает каждый CIL-совместимый компилятор. С помощью метаданных управляемый модуль описывает сам себя. С помощью метаданных можно легко узнать, какие (классы, интерфейсы и т. п.) содержатся в управляемом модуле.

Метаданные

Основные метаданные модулей хранятся в виде набора таблиц. В одной из них (TypeDef) перечислены определенные в этом модуле типы. В другой таблице перечислены методы, реализованные этими типами, в третьей – поля, в четвертой – свойства и т. д. Используя эти таблицы, можно составить список всех типов данных, определенных в модуле, а также элементов, из которых состоит каждый тип. В некоторых таблицах перечислены ссылки на внешние типы (типы и элементы типов в других модулях, используемые данным модулем), сборки, содержащие внешние типы, и др.

Формат метаданных для прикладного разработчика большого интереса не представляет. Однако в составе .NET Framework SDK имеется утилита ILDASM, которая позволяет просматривать содержание управляемых модулей.

 
< Пред   СОДЕРЖАНИЕ     След >