Основы языка C# 2005. Евсеева О.Н - 11 стр.

UptoLike

Составители: 

15
помощи ассемблера. Любое приложение .NET компилируется в среде
разработки в виде кода MSIL.
В принципе, разработчики могут писать приложения прямо на языке
MSIL. Правда, никто не утверждает, что это будет легко, удобно и приятно.
Доступность кода MSIL приложения в архитектуре .NET потребовала создания
механизмов аутентификации исполняемых файлов.
1.3.2. Сборки, метаданные и промежуточный код
Согласно рассмотренной схеме разработки и выполнения приложений
.NET, компиляторы исходных языков программирования, используемых
разработчиками, компилируют приложение не в машинный код для конкретной
операционной системы и процессора, а в промежуточный код на языке MSIL.
Полученный таким образом исполняемый файл, помимо собственно кода
приложения, содержит и метаданныеслужебную информацию о
приложении. Такие исполняемые файлы называются сборками и являются
аналогами файлов EXE и DLL для обычных приложений. Затем при
выполнении приложения сборка загружается операционной средой .NET
Framework и уже там компилируется в машинный код. Такая схема выполнения
приложения в архитектуре .NET дает существенные преимущества:
Приложения .NET являются платформенно-независимыми при условии,
что имеется соответствующий вариант операционной среды для той или иной
операционной системы.
Метаданные, прикомпилированные к коду приложения, позволяют
избавиться от громоздких библиотек типов и регистрации в системном реестре,
за что справедливо критикуют приложения СОМ. Приложение .NET готово к
работе сразу.
Сочетание служебной информации в метаданных и соответствующих
механизмов в среде выполнения CLR обеспечивает такие полезные вещи, как,
например, контроль версий.
Но, конечно, у такого подхода есть и недостатки. Разработчики Microsoft,
разумеется, знали об этом и постарались ликвидировать или минимизировать
большинство проблем.
Наиболее очевидные из них:
Архитектура громоздкадля исполнения приложения нужна
операционная среда.
Необходимость компиляции в машинный код замедляет выполнение
приложения.
Код MSIL является небезопасным с точки зрения подделоклюбая
незашифрованная сборка может быть модифицирована кем угодно.