The Common Language Infrastructure (CLI) is used in Microsoft .NET as the basis for running programs written in different programming languages. Before this, each language required its own runtime module for the compiled programs to run - Visual Basic required VBVM, Visual C++ versions prior to Visual C++.NET needed MSVCRT DLL. The common language infrastructure is an effort to unify the different runtime modules needed.

The CLI uses a class library and virtual machine, the Common Language Runtime (CLR). Many compilers are in development to produce code for this virtual machine. The code the virtual machine uses is expressed in a Common Intermediate Language (CIL), also known as Microsoft Intermediate Language (MSIL), a CPU-independent set of instructions that can be efficiently converted to native code. CIL can be thought of as a high level assembly language.

CLI is intended as a competitor for the Java virtual machine.