конспект лекций, вопросы к экзамену

CLR, понятие, структура и работа CLR. Исполнение кода сборки в CLR. Структура сборки.

Common Language Runtime (CRL) обеспечивает среду выполнения .NET-приложений. CRL задает общую систему типов, используемую всеми языками программирования. За счет единой системы типов достигается более простая интеграция компонентов и кода, написанных на разных языках программирования. В отличие от COM-технологии, также основанной на наборе стандартных типов, но представляемых в бинарном виде, CLR позволяет выполнять интеграцию кода (кот. может быть написан на различных яз. программ-ния) в режиме дизайна, а не в режиме выполнения.

CLR ("Common Language Runtime", "общеязыковая исполняющая среда") - это компонент .NET Framework, основной задачей которого является управление интерпретацией и исполнением кода IL. CLR отвечает за изоляцию памяти приложений, проверку типов, безопасность кода, преобразование IL в машинный код.

Загрузка CLR. Каждая создаваемая сборка представляет собой либо исполняемое приложение, либо DLL, содержащую набор типов (компонентов) для использования в исполняемом приложении. За управление исполнением кода отвечает CLR. Это значит, что на компьютере, выполняющем приложение, должен быть установлен каркас. NET Framework.

.NET F. поддерж. 2 вида сборок: с нестрогими именами и со строгими именами. Сборки со строгими и нестрогими именами идентичны по стр-ре. Оба типа сборок компонуются при помощи одних и тех же инструментов, например компилятора С#. Но отличаются тем, что первые подписаны при помощи пары ключей, уникально идентифицирующей издателя сборки.

Неуправляемый код компилируется для конкретного процессора и при вызове просто исполняется.

Взаимодействие кодом:

— управляемый код может вызывать направляемую функцию из DLL посредствам P/Invoke (например CreateSemaphore из Kernel32.dll).

— управл код может использ существующий COM-компонент (сервер).

— неуправляемый код может использовать управляемый тип (сервер). Можно реализовать COM — компоненты в управляемой среде и тогда не нужно вести подсчет ссылок интерфейсов.

Развертывание сборки может быть закрытым или глобальным. Сборку с закрытым развертыванием развертывают в базовом каталоге приложения или в одном из его подкаталогов. Для сборки с нестрогим именем возможно лишь закрытое развертывание.

Сборку с глобальным развертыванием развертывают в каком-либо общеизвестном каталоге, который CLR проверяет при поиске сборок. Такие сборки можно развертывать как закрыто, так и глобально.

30.12.2019; 08:00
просмотров: 132