Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
.NET предоставляет среду выполнения, называемую средой CLR, которая запускает код и предоставляет службы, которые упрощают процесс разработки.
Компиляторы и средства предоставляют функциональные возможности среды CLR и позволяют писать код, который используется в управляемой среде выполнения. Код, разрабатываемый с помощью компилятора языка, предназначенного для среды выполнения, называется управляемым кодом. Управляемый код обеспечивает преимущества таких функций, как интеграция между языками, обработка исключений на разных языках, улучшенная безопасность, поддержка управления версиями и развертыванием, упрощенная модель взаимодействия компонентов и отладка и профилирование служб.
Замечание
Компиляторы и средства могут создавать выходные данные, которые среда CLR может использовать, так как система типов, формат метаданных и среда выполнения (виртуальная система выполнения) определяются общедоступным стандартом, спецификацией среды CLMA Common Language Infrastructure. Дополнительные сведения см. в спецификациях инфраструктуры ECMA C# и Общая языковая инфраструктура.
Чтобы среда выполнения предоставляла службы управляемому коду, компиляторы языка должны выдавать метаданные, описывающие типы, члены и ссылки в коде. Метаданные хранятся с помощью кода; каждый загруженный файл среды CLR переносимого исполняемого файла (PE) содержит метаданные. Среда выполнения использует метаданные для поиска и загрузки классов, размещения экземпляров в памяти, разрешения вызовов методов, создания машинного кода, принудительного применения безопасности и установки границ контекста среды выполнения.
Среда выполнения автоматически обрабатывает макет объектов и управляет ссылками на объекты, освобождая их, когда они больше не используются. Объекты, время существования которых управляется таким образом, называется управляемыми данными. Сборка мусора устраняет утечки памяти и некоторые другие распространенные ошибки программирования. Если код управляется, вы можете использовать управляемые данные, неуправляемые данные или оба в приложении .NET. Так как компиляторы языка предоставляют собственные типы, такие как примитивные типы, вы не всегда знаете или должны знать, управляются ли ваши данные.
Среда CLR упрощает проектирование компонентов и приложений, объекты которых взаимодействуют между языками. Объекты, написанные на разных языках, могут взаимодействовать друг с другом, и их поведение может быть тесно интегрировано. Например, можно определить класс, а затем использовать другой язык для получения класса из исходного класса или вызова метода в исходном классе. Вы также можете передать экземпляр класса методу класса, написанному на другом языке. Эта межязычная интеграция возможна, так как компиляторы и средства языка, предназначенные для среды выполнения, используют систему общего типа, определенную средой выполнения. Они следуют правилам среды выполнения для определения новых типов и создания, использования, сохранения и привязки к типам.
В рамках их метаданных все управляемые компоненты содержат сведения о компонентах и ресурсах, против которых они были созданы. Среда выполнения использует эти сведения, чтобы гарантировать, что компонент или приложение имеет указанные версии всего необходимого, что делает код с меньшей вероятностью нарушится из-за отсутствия настроенной зависимости. Сведения о регистрации и данные о состоянии больше не хранятся в реестре, где их может быть трудно установить и поддерживать. Вместо этого сведения о типах, которые вы определяете, и их зависимости хранятся с кодом в качестве метаданных. Таким образом, задача репликации и удаления компонентов менее сложна.
Компиляторы и средства языка предоставляют функциональные возможности среды выполнения таким образом, чтобы они были полезными и интуитивно понятными для разработчиков. Некоторые функции среды выполнения могут быть более заметными в одной среде, чем в другой. Как вы используете среду выполнения, зависит от используемых компиляторов или инструментов языка. Например, если вы разработчик Visual Basic, вы можете заметить, что в среде CLR язык Visual Basic имеет более объектно-ориентированные функции, чем раньше. Среда выполнения предоставляет следующие преимущества:
Повышение производительности.
Возможность легко использовать компоненты, разработанные на других языках.
Расширяемые типы, предоставляемые библиотекой классов.
Языковые функции, такие как наследование, интерфейсы и перегрузки для объектно-ориентированного программирования.
Поддержка явного свободного потока, которая позволяет создавать многопоточные и масштабируемые приложения.
Поддержка структурированной обработки исключений.
Поддержка пользовательских атрибутов.
Сборка мусора.
Использование делегатов вместо указателей функций для повышения безопасности и типобезопасности. Дополнительные сведения о делегатах см. в разделе Common Type System.
Версии CLR
Выпуски .NET Core и .NET 5+ имеют единую версию продукта, что означает, что не существует отдельной версии CLR. Список версий .NET Core см. в разделе "Скачать .NET Core".
Однако номер версии .NET Framework не обязательно соответствует номеру версии среды CLR, включаемой в нее. Чтобы получить список версий .NET Framework и соответствующих версий CLR, см. раздел версии и зависимости .NET Framework.
Связанные статьи
| Название | Описание |
|---|---|
| Процесс управляемого выполнения | Описывает шаги, необходимые для использования общей среды выполнения. |
| Автоматическое управление памятью | Описывает, как сборщик мусора выделяет и освобождает память. |
| Обзор технологии .NET Framework | Описывает основные понятия .NET Framework, такие как система общего типа, взаимодействие между языками, управляемое выполнение, домены приложений и сборки. |
| Общая система типов | Описывает, как типы объявляются, используются и управляются во время выполнения в поддержке межязычной интеграции. |