Il Common Language Runtime (CLR) è una programmazione che gestisce l'esecuzione di programmi scritti in uno qualsiasi dei diversi linguaggi supportati, consentendo loro di condividere classi orientate agli oggetti comuni scritte in uno qualsiasi dei linguaggi. Fa parte di .NET Framework di Microsoft. Il CLR è in qualche modo paragonabile alla Java virtual machine fornita da Sun Microsystems per l'esecuzione di programmi compilati dal linguaggio Java. Microsoft fa riferimento al proprio CLR come un "ambiente di esecuzione gestito". Un programma compilato per CLR non necessita di un ambiente di esecuzione specifico della lingua e può essere facilmente spostato ed eseguito su qualsiasi sistema con Windows 2000 o Windows XP.
I programmatori che scrivono in Visual Basic, Visual C ++ o C # compilano i loro programmi in una forma intermedia di codice chiamata Common Intermediate Language (CIL) in un file di esecuzione portatile che può essere quindi gestito ed eseguito dal CLR. Il programmatore e l'ambiente specificano le informazioni descrittive sul programma quando viene compilato e le informazioni vengono memorizzate con il programma compilato come metadati. I metadati, memorizzati nel programma compilato, dicono al CLR quale lingua è stata utilizzata, la sua versione e quali librerie di classi saranno necessarie al programma. Il CLR consente a un'istanza di una classe scritta in una lingua di chiamare un metodo di una classe scritta in un'altra lingua. Fornisce inoltre garbage collection (restituzione di memoria non necessaria al computer), gestione delle eccezioni e servizi di debug.