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 .
5-726: The Framework Class Library ( FCL ) is a component of Microsoft's .NET Framework , the first implementation of the Common Language Infrastructure (CLI). In much the same way as Common Language Runtime (CLR) implements the CLI Virtual Execution System (VES), the FCL implements the CLI foundational Standard Libraries . As a CLI foundational class libraries implementation, it is a collection of reusable classes , interfaces , and value types , and includes an implementation of
10-567: The CLI Base Class Library (BCL). With Microsoft's move to .NET Core , the CLI foundational class libraries implementation is known as CoreFX instead of Framework Class Library. Difference Between .NET Core and .NET Framework: Head to Head Comparison Common Language Infrastructure Among other things, the CLI specification describes the following five aspects: In August 2000, Microsoft , Hewlett-Packard , Intel , and others worked to standardize CLI. By December 2001, it
15-505: 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
20-420: 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
25-695: 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
#933066