Общеязыковая среда выполнения Clr
Обновлено: 21.11.2024
Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.
Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .
План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.
Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .
Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .
Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.
Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.
Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.
Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .
Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.
Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.
Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .
API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.
Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.
Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.
Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.
Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .
План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.
Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .
Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .
Метаморфное и полиморфное вредоносное ПО – это два типа вредоносных программ (вредоносных программ), код которых может изменяться по мере их распространения.
Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.
Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.
Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .
Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.
Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.
Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .
API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.
Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.
Износ флэш-памяти NAND — это пробой оксидного слоя внутри транзисторов с плавающим затвором флэш-памяти NAND.
Компиляторы и инструменты предоставляют функциональные возможности общеязыковой среды выполнения и позволяют писать код, который выигрывает от этой управляемой среды выполнения. Код, который вы разрабатываете с помощью языкового компилятора, ориентированного на среду выполнения, называется управляемым кодом. Управляемый код выигрывает от таких функций, как межъязыковая интеграция, обработка исключений на разных языках, повышенная безопасность, поддержка версий и развертывания, упрощенная модель взаимодействия компонентов, а также службы отладки и профилирования.
Чтобы среда выполнения могла предоставлять услуги управляемому коду, компиляторы языка должны создавать метаданные, описывающие типы, члены и ссылки в вашем коде. Метаданные хранятся вместе с кодом; каждый загружаемый переносимый исполняемый (PE) файл общеязыковой среды выполнения содержит метаданные.Среда выполнения использует метаданные для поиска и загрузки классов, расположения экземпляров в памяти, разрешения вызовов методов, создания собственного кода, обеспечения безопасности и установки границ контекста времени выполнения.
Среда CLR упрощает разработку компонентов и приложений, объекты которых взаимодействуют между языками. Объекты, написанные на разных языках, могут взаимодействовать друг с другом, и их поведение может быть тесно интегрировано. Например, вы можете определить класс, а затем использовать другой язык, чтобы получить класс из исходного класса или вызвать метод в исходном классе. Вы также можете передать экземпляр класса в метод класса, написанный на другом языке. Эта межъязыковая интеграция возможна, поскольку языковые компиляторы и инструменты, ориентированные на среду выполнения, используют общую систему типов, определенную средой выполнения, и следуют правилам среды выполнения для определения новых типов, а также для создания, использования, сохранения и привязки к ним. типы.
Как часть своих метаданных все управляемые компоненты содержат информацию о компонентах и ресурсах, на основе которых они были созданы. Среда выполнения использует эту информацию, чтобы убедиться, что ваш компонент или приложение имеет указанные версии всего, что ему нужно, что снижает вероятность того, что ваш код сломается из-за какой-либо неудовлетворенной зависимости. Регистрационная информация и данные о состоянии больше не хранятся в реестре, где их сложно установить и поддерживать. Вместо этого информация об определяемых вами типах (и их зависимостях) сохраняется вместе с кодом в виде метаданных, что значительно упрощает задачи репликации и удаления компонентов.
Компиляторы и инструменты языка раскрывают функциональные возможности среды выполнения способами, которые должны быть полезными и интуитивно понятными для разработчиков. Это означает, что некоторые функции среды выполнения могут быть более заметными в одной среде, чем в другой. То, как вы работаете со средой выполнения, зависит от того, какие языковые компиляторы или инструменты вы используете. Например, если вы являетесь разработчиком Visual Basic, вы можете заметить, что в общеязыковой среде выполнения язык Visual Basic имеет больше объектно-ориентированных функций, чем раньше. Среда выполнения предоставляет следующие преимущества:
Возможность легко использовать компоненты, разработанные на других языках.
Расширяемые типы, предоставляемые библиотекой классов.
Функции языка, такие как наследование, интерфейсы и перегрузка для объектно-ориентированного программирования.
Поддержка явной свободной многопоточности, которая позволяет создавать многопоточные масштабируемые приложения.
Поддержка структурированной обработки исключений.
Поддержка пользовательских атрибутов.
Использование делегатов вместо указателей на функции для повышения надежности и безопасности типов. Дополнительные сведения о делегатах см. в разделе Система общих типов.
Версии CLR
Что такое общеязыковая среда выполнения?
Среда CLR сначала находит указанную сборку, а затем загружает ее в память, компилирует связанный IL-код в инструкции для конкретной платформы, выполняет проверки, связанные с безопасностью, и, наконец, выполняет код.
Управляемый код
Код, разработанный и работающий под управлением среды CLR, часто называют управляемым кодом
Компилируется IL-код (JIT-компиляция), тогда как байт-код Java интерпретируется. Одним из преимуществ java было то, что при выполнении процесс преобразования байт-кода java в собственный исполняемый файл приводил к потере производительности. Вместо того, чтобы компилировать все приложения за один раз; компилятор JIT просто компилирует каждую часть кода. Вот почему мы можем ожидать, что выполнение управляемого кода IL будет таким же быстрым, как выполнение собственного кода.
[c language="language Hello World");
>
>
>
[/c]
[vbnet]Module Hello
Public Class TestClass
Public Shared Sub Main()
Console.WriteLine("Hello World")
End Sub
End Class
Конечный модуль
[/vbnet]
Наконец, управляемый код обеспечивает независимость от платформы. Вы можете скомпилировать в IL из одного языка, и этот скомпилированный код должен быть совместим с другим языком, скомпилированным IL.
Система общих типов
CTS также установил правила, по которым формируются сборки, границы видимости для типа. Кроме того, CTS определяет правила, регулирующие наследование, время жизни объекта и виртуальные методы, например, все типы должны наследоваться от предопределенного типа System.Object ;
Общая языковая спецификация
Сборка мусора
Самым важным аспектом сборки мусора является то, что он не является детерминированным.Вы не можете гарантировать, когда будет вызван сборщик мусора; он будет вызываться, когда CLR решит, что необходимо освободить ресурсы из памяти.
Сборки
Сами сборки также описываются с использованием метаданных, которые официально называются манифестами. Манифест содержит информацию о текущей версии сборки, информацию о культуре и список всех внешних ссылок на сборки, которые требуют выполнения программы.
Отражение
Можно получить доступ к метаданным (яркие сведения о типах) из сборки программно, используя механизм отражения. Этот метод обычно используется для получения сведений об атрибутах, хотя вы также можете использовать отражение, помимо других целей, таких как создание экземпляров классов или вызов методов.
Таким образом, вы можете выбрать классы для создания экземпляров методов, которые будут вызываться во время выполнения, а не во время компиляции, на основе входных данных пользователя (динамическое связывание). Рефлексия позволяет нам выполнять множество задач, таких как перечисление членов типа, получение информации о типах, создание и компиляция новых сборок, а также проверка пользовательских атрибутов, примененных к типу.
Безопасность
Code Access Security (CAS) снижает риски, связанные с запуском кода сомнительного происхождения, даже если код выполняется под учетной записью суперпользователя. Можно использовать CAS, чтобы указать, что коду по-прежнему не должно быть разрешено выполнять определенные типы операций. В то время как безопасность на основе ролей основана на удостоверении учетной записи, под которой запущен процесс, CLR может проверять код перед запуском, чтобы определить необходимые разрешения безопасности.
Природа с открытым исходным кодом
Вывод
Читайте также: