O Common Language Runtime (CLR) é uma programação que gere a execução de programas escritos em qualquer uma das várias linguagens suportadas, permitindo-lhes partilhar classes orientadas a objectos comuns escritas em qualquer uma das linguagens. É uma parte do framework .NET da Microsoft. O CLR é um pouco comparável com a máquina virtual Java que a Sun Microsystems fornece para executar programas compilados a partir da linguagem Java. A Microsoft refere-se ao seu CLR como um "ambiente de execução gerenciada". Um programa compilado para o CLR não precisa de um ambiente de execução específico da linguagem e pode facilmente ser movido e executado em qualquer sistema com Windows 2000 ou Windows XP.
Programadores escrevendo em qualquer um dos arquivos Visual Basic , Visual C++ , ou C# compilam seus programas em uma forma intermediária de código chamada Common Intermediate Language (CIL) em um arquivo portável execution que pode então ser gerenciado e executado pelo CLR. O programador e o ambiente especificam informação descritiva sobre o programa quando este é compilado e a informação é armazenada com o programa compilado como metadados. Os metadados, armazenados no programa compilado, dizem ao CLR qual a linguagem utilizada, sua versão e quais bibliotecas de classes serão necessárias para o programa. O CLR permite que uma instância de uma classe escrita em um idioma chame um método de uma classe escrita em outro idioma. Ele também fornece serviços de coleta de lixo (devolução de memória desnecessária ao computador), tratamento de exceções e depuração.