среда, 31 июля 2013 г.

СРЕДА ВЫПОЛНЕНИЯ .NET FRAMEWORK

1. СРЕДА ВЫПОЛНЕНИЯ .NET FRAMEWORK

   Средой выполнения является CLR (Common Language Runtime) - общеязыковая среда выполнения. Общеязыковая - это значит, что можно писать и на C# и С/С++ и Visual Basic, можно даже свой язык создать и свой компилятор для CLR). Общие механизмы работы этой среды подходят для всех языков программирования, которые ее используют.
 Все языковые компиляторы (CLR-совместимые компиляторы) генерируют IL-код и метаданные (управляемый модуль - PE  файл), с которым в последствии работает CLR.

Сам управляемый модуль состоит из:

  1. Заголовок - обозначает тип файла: GUI, CUI или DLL;
  2. Заголовок CLR - информация для превращение данного модуля в управляемый (расположение метаданных, точку входа и.т.д);
  3. Метаданные - 2 таблицы, описывающие типы данных и их члены;
  4. IL код - CLR компилирует его в машинный код в дальнейшем.
Зачем нужны метаданные? На них работает IntelliSinse, не нужна никакая дополнительная информация о коде, так как все хранится в в исполняемом файле, помогают сборщику мусора и сериализации.

Среда CLR работает со сборками. Сборка - это объединение исполняемых файлов в одну логическую сущность, описанную манифестом. Благодаря сборкам, работающим с управляемым кодом, нет необходимости в реестре, как в случает с неуправляемым кодом.
Сборка разбивает управляемые модули и ресурсные файлы.

Сборка представляет собой dll файл или приложение. В процессе разработки скорее всего будет использоваться язык высокого уровня, например C#, который не использует в полную мощь среду CLR. Для использования каких-то особенный функций можно писать часть приложения на ассемблере IL

Перед выполнением JIT компиляторы переводят в машинный код IL код. При этом CLR вызывает JIT компилятор только при первой компиляции типа. В дальнейшем это уже не потребуется, так как все будет загружено в память.

Комментариев нет:

Отправить комментарий