Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ООП C#.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

Понятие общеязыковой спецификации (cls)

Спецификация CLS — это набор правил, подробно описывающих минимальное и полное множество характеристик, которые должен поддерживать отдельный компилятор .NET, чтобы генерировать программный код, обслуживаемый средой CLR и в то же время доступный в унифицированной манере всем языкам, ориентированным на платформу .NET. Во многих отношениях CLS можно рассматривать как подмножество полной функциональности, определяемой CTS. В конечном итоге CLS является набором правил, которых должны придерживаться создатели компиляторов при желании, чтобы их продукты могли гладко функционировать в мире .NET. Каждое правило имеет простое название (например, “Правило номер 6”), и каждое правило описывает воздействие на тех, кто создает компиляторы, и на тех, кто (каким-либо образом) взаимодействует с ними. Наиболее важным в CLS является правило номер 1.

Правило номер 1. Правила CLS применяются только к тем частям типа, которые видны извне определяющей сборки. Из этого правила можно сделать корректный вывод о том, что остальные правила CLS не применяются к логике, используемой для построения внутренних рабочих деталей типа .NET. Единственными аспектами типа, которые должны соответствовать CLS, являются сами определения членов (т.е. соглашения об именовании, параметры и возвращаемые типы). Логика реализации члена может применять любое количество приемов, не согласованных с CLS, т.к. для внешнего мира это не играет никакой роли.

Понятие общеязыковой исполняющей среды (clr)

Помимо спецификаций CTS и CLS, для получения общей картины на данный момент осталось рассмотреть еще одну аббревиатуру — CLR. С точки зрения программирования под термином исполняющая среда может пониматься коллекция служб, которые требуются для выполнения скомпилированной единицы кода. Например, когда разработчики на Java развертывают программное обеспечение на новом компьютере, они должны удостовериться в том, что на компьютере установлена виртуальная машина Java (Java Virtual Machine — JVM), которая сделает возможным выполнение их программного обеспечения.

Платформа .NET предлагает еще одну исполняющую среду. Ключевая разница между исполняющей средой .NET и упомянутыми выше средами состоит в том, что исполняющая среда .NET обеспечивает единый четко определенный уровень выполнения, который разделяется всеми языками и платформами, ориентированными на .NET.

Рис. 3. Сборка mscoree.dll в действии

Основной механизм CLR физически имеет вид библиотеки по имени mscoree.dll (также известной как общий механизм выполнения исполняемого кода объектов (Common Object Runtime Execution Engine)). Когда на сборку производится ссылка с целью ее использования, библиотека mscoree.dll загружается автоматически и, в свою очередь, загружает требуемую сборку в память. Исполняющая среда отвечает за решение множества задач. Первая и наиглавнейшая задача — определение местоположения сборки и нахождение запрошенного типа в двоичном файле за счет чтения содержащихся в нем метаданных. Затем CLR размещает тип в памяти, преобразует связанный с ним CIL-код в специфичные для платформы инструкции, производит все необходимые проверки безопасности и после этого выполняет нужный код.