The Common Language Infrastructure (CLI) is an open specification developed by Microsoft and standardized by ISO and ECMA that describes executable code and a runtime environment that allow multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures. The .NET Framework and the free and open source Mono and Portable.NET are implementations of the CLI.
Get an overview of the architecture on CLI Architecture .
Among other things, the CLI specification describes the following four aspects:
The Common Type System (CTS)
A set of data types and operations that are shared by all CTS-compliant programming languages.
Information about program structure is language-agnostic, so that it can be referenced between languages and tools, making it easy to work with code written in a language one’s not using.
The Common Language Specification (CLS)
A set of base rules to which any language targeting the CLI should conform in order to interoperate with other CLS-compliant languages. The CLS rules define a subset of the Common Type System.
The Virtual Execution System (VES)
The VES loads and executes CLI-compatible programs, using the metadata to combine separately generated pieces of code at runtime.
All compatible languages compile to Common Intermediate Language (CIL), which is an intermediate language that is abstracted from the platform hardware. When the code is executed, the platform-specific VES will compile the CIL to the machine language according to the specific hardware and operating system.
For more reading on
.NET Core CLI: The .NET Command Line Interface, which is billed as the “new command line experience” for building and deploying cross platform .NET applications.
Please check this link: