Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

Цель:

Изучение архитектуры платформы .NET Framework.

Задачи:

1. Изучить структуру платформы .NET Framework;

2. Установить связь между элементами платформы .NET Framework;

3. Описать структуру CLR;

4. Определить назначение и задачи CLR;

5. Описать возможности CLR;

6. Дополнить глоссарий терминов;

Содержание темы:

Структура .NET Framework показана на рисунке 1, из которого видно, что эта среда представляет собой дополнительный операционный слой, разделяющий приложения пользователя и базовые сервисы Windows.

Рисунок 1 – Структурная схема .NET Framework

На рисунке 2 показан чрезвычайно упрощенный вид архитектуры и взаимосвязей между элементами платформы .NET Framework.

Рисунок 2 – Архитектура платформы .NET Framework

.NET Framework состоит из двух главных компонентов: библиотеки базовых классов и CLR

(Common Language Runtime – общая для языков среда исполнения NET-приложений).

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

Над средой CLR располагается базовая платформа Base Framework и набор библиотек классов, которые могут совместно использоваться любыми языками, совместимыми со средой .NET.

Среда CLR и фундаментальные части базовой платформы Base Framework составляют общеязыковую инфраструктуру (Common Language Infrastructure – CLI). Инфраструктура CLI стандартизована ассоциацией ЕСМА.

В верхней части схемы платформы .NET Framework на рис. 2 находится раздел приложений, который охватывает настольные приложения, Web-ориентированные приложения ASP.NET, а также Web-службы. Эти приложения используют функции, предлагаемые на более низких уровнях этой схемы.

Среда Common Language Runtime (CLR)

CLR представляет собой не зависящую от языка среду выполнения для приложений .NET Framework. Она обеспечивает возможности, необходимые для функционирования .NET Framework..

Задачи, решаемые CLR

CLR разрабатывалась с целью решения следующих задач: упростить разработку приложений;

упростить развертывание приложений;

обеспечить поддержку разных языков программирования; улучшить возможности отладки кода;

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

CLR активно реализует принцип “писать меньше, повторно использовать больше”. CLR используют единый метод сообщений об ошибках и обработки исключений. CLR автоматически контролирует использование ресурсов, освобождая их при необходимости. Основным элементом для выполнения этого в CLR является сборщик мусора. CLR проверяет благонадежность получаемого кода и применяет ограничения для определенной части этого кода. CLR предоставляет предопределенные классы со встроенными в них функциями безопасности.

Итак, среда CLR является ключевым компонентом .NET Framework и состоит из трех основных элементов (рис. 3).

Рисунок 3 – Структура CLR

Система типов (type system) – это часть среды CLR, которая поддерживает многие типы и операции, имеющиеся в современных языках программирования.

Система метаданных (metadata system) является частью CLR, которая описывает типы в этой среде, позволяет сохранять метаданные вместе с типами во время компиляции и запрашивать их с помощью других компиляторов CLR или системы выполнения во время выполнения программ. Компиляторы используют метаданные для создания типов, доступных в их собственных языках, а система типов использует метаданные для управления типами во время выполнения. Метаданные хранятся в двоичном формате (binary format). Доступ к метаданным можно осуществлять с помощью API без обязательного знания основ этого двоичного формата.

Метаданные имеют вид таблиц: таблицы, описывающие типы и члены, определенные в исходном коде, и таблицы, описывающие типы и члены, на которые имеются ссылки в исходном коде.

Метаданные используются для разных целей. Одна из них: метаданные устраняют необходимость в заголовочных и библиотечных файлах при компиляции, так как: все сведения о типах/членах, на которые есть ссылки, содержатся в файле с IL-кодом. в котором они реализованы. Компиляторы могут читать метаданные прямо из управляемых модулей.

Система выполнения (execution system) является частью среды CLR, которая запускает CLR- программы, используя метаданные, отвечает за загрузку сборок, управление потоком выполнения, а также управление сборкой мусора в куче.

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

CLR поддерживает большинство современных языков программирования с помощью CTS (Common Type System – общая система типов) и CLS (Common Language Specification – общая языковая спецификация).

CTS (Common Type System – общая система типов) представляет собой развитую систему типов, встроенную в среду CLR. В ней содержатся все распознаваемые типы, которые могут использоваться в среде выполнения .NET. CTS также определяет методы взаимодействия между типами.

Основные свойства CTS:

обеспечивает возможность использования большого числа встроенных типов данных;

предоставляет механизм для определения, управления и применения новых типов данных; обеспечивает единый метод представления типов для всех языков программирования

обеспечивает возможность наследования компонентов, созданных на различных языках, и обработки ошибок в составных приложениях. Например, класс, созданный в С#, может быть унаследован в приложении на Visual Basic.

Для обеспечения совместимости предназначена CLS (Common Language Specification – общая языковая спецификация).

CLS определяет минимальный набор спецификаций, которые должны поддерживаться языками для обеспечения возможности их взаимодействия. Компоненты, которые созданы в соответствии с требованиями CLS, называют СLS-совместимыми компонентами.

Была ли полезна данная статья?
Да
66.13%
Нет
33.87%
Проголосовало: 186

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram