Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Общая языковая инфраструктура (CLI) — это открытая спецификация и технический стандарт, первоначально разработанный Microsoft и стандартизированный ISO/IEC (ISO/IEC 23271) и Ecma International (ECMA 335), описывающий исполняемый код и среду выполнения, позволяющую использовать несколько языков программирования высокого уровня на различных компьютерных платформах без переписывания для конкретных архитектур. Это подразумевает платформенную независимость. .NET Framework, .NET и Mono являются реализациями CLI. Формат метаданных также используется для определения API, предоставляемых средой выполнения Windows.
Open specification used to define the NET framework, the legacy NET Framework, and other runtimes
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by ISO/IEC (ISO/IEC 23271) and Ecma International (ECMA 335) that describes executable code and a runtime environment that allows multiple high level languages to be used on different computer platforms without being rewritten for specific architectures. This implies it is platform agnostic. The NET Framework, NET and Mono are implementations of the CLI. The metadata format is also used to specify the API definitions exposed by the Windows Runtime.
Стандартизация и лицензирование
В августе 2000 года Microsoft, Hewlett Packard, Intel и другие компании работали над стандартизацией CLI. К декабрю 2001 года он был ратифицирован Ecma, а в апреле 2003 года последовала стандартизация ISO/IEC. Microsoft и ее партнеры владеют патентами на CLI. Ecma и ISO/IEC требуют, чтобы все патенты, необходимые для реализации, были доступны на "разумных и недискриминационных (RAND) условиях". Обычно лицензирование RAND предполагает уплату некоторых лицензионных отчислений, что может вызывать опасения в отношении Mono. По состоянию на январь 2013 года ни Microsoft, ни ее партнеры не выявили каких-либо патентов, необходимых для реализации CLI, подлежащих условиям RAND. С июля 2009 года Microsoft добавила C# и CLI в список спецификаций, к которым применяется Microsoft Community Promise, поэтому любой может безопасно реализовать указанные редакции стандартов, не опасаясь патентного иска со стороны Microsoft. Для реализации стандарта CLI требуется соответствие одному из поддерживаемых и определенных профилей стандарта, минимальным из которых является профиль ядра. Профиль ядра фактически представляет собой очень небольшой набор типов для поддержки по сравнению с хорошо известной базовой библиотекой стандартных установок .NET. Однако пункт о соответствии в спецификации CLI позволяет расширить поддерживаемый профиль путем добавления новых методов и типов к классам, а также создания производных классов из новых пространств имен. Но он не позволяет добавлять новых членов в интерфейсы. Это означает, что функциональность CLI может использоваться и расширяться, при условии, что реализация соответствующего профиля не изменяет поведение программы, предназначенной для запуска на этом профиле, и допускает неопределенное поведение программ, написанных специально для данной реализации. В 2012 году Ecma и ISO/IEC опубликовали новую редакцию стандарта CLI.
In August 2000, Microsoft, Hewlett Packard, Intel, and others worked to standardize CLI. By December 2001, it was ratified by the Ecma, with ISO/IEC standardization following in April 2003. Microsoft and its partners hold patents for CLI. Ecma and ISO/IEC require that all patents essential to implementation be made available under "reasonable and non discriminatory (RAND) terms." It is common for RAND licensing to require some royalty payment, which could be a cause for concern with Mono. As of January 2013, neither Microsoft nor its partners have identified any patents essential to CLI implementations subject to RAND terms. As of July 2009, Microsoft added C# and CLI to the list of specifications that the Microsoft Community Promise applies to, so anyone can safely implement specified editions of the standards without fearing a patent lawsuit from Microsoft. To implement the CLI standard requires conformance to one of the supported and defined profiles of the standard, the minimum of which is the kernel profile. The kernel profile is actually a very small set of types to support in comparison to the well known core library of default NET installations. However, the conformance clause of the CLI allows for extending the supported profile by adding new methods and types to classes, as well as deriving from new namespaces. But it does not allow for adding new members to interfaces. This means that the features of the CLI can be used and extended, as long as the conforming profile implementation does not change the behavior of a program intended to run on that profile, while allowing for unspecified behavior from programs written specifically for that implementation. In 2012, Ecma and ISO/IEC published the new edition of the CLI standard.
Реализация
.NET Framework — это оригинальная коммерческая реализация CLI от Microsoft. Она поддерживает только Windows. В ноябре 2020 года её сменила .NET. .NET, ранее известная как .NET Core, является бесплатной и открытой многоплатформенной заменой .NET Framework, распространяемой под лицензией MIT. .NET Compact Framework — коммерческая реализация CLI от Microsoft для портативных устройств и Xbox 360. .NET Micro Framework — реализация CLI с открытым исходным кодом для устройств с ограниченными ресурсами. Mono — альтернативная реализация CLI и сопутствующих технологий с открытым исходным кодом, в основном используемая для разработки мобильных и игровых приложений.
. NET Framework is Microsoft's original commercial implementation of the CLI. It only supports Windows. It was superseded by NET in November 2020. NET, previously known as NET Core, is the free and open source multi platform successor to NET Framework, released under the MIT License NET Compact Framework is Microsoft's commercial implementation of the CLI for portable devices and Xbox 360. NET Micro Framework is an open source implementation of the CLI for resource constrained devices. Mono is an alternative open source implementation of CLI and accompanying technologies, mainly used for mobile and game development.