De Common Language Runtime (CLR) is een programmering die de uitvoering beheert van programma's die zijn geschreven in een van de vele ondersteunde talen, waardoor ze gemeenschappelijke object-georiënteerde klassen kunnen delen geschreven in een van de talen. Het is een onderdeel van Microsofts .NET Framework. De CLR is enigszins vergelijkbaar met de virtuele Java-machine die Sun Microsystems levert voor het uitvoeren van programma's die zijn gecompileerd uit de Java-taal. Microsoft verwijst naar zijn CLR als een "beheerde uitvoeringsomgeving". Een programma dat is gecompileerd voor de CLR heeft geen taal-specifieke uitvoeringsomgeving nodig en kan eenvoudig worden verplaatst naar en uitgevoerd op elk systeem met Windows 2000 of Windows XP.
Programmeurs die schrijven in een van Visual Basic , Visual C++ , of C# compileren hun programma's in een tussenliggende vorm van code genaamd Common Intermediate Language (CIL) in een portable execution bestand dat vervolgens kan worden beheerd en uitgevoerd door de CLR. De programmeur en de omgeving specificeren beschrijvende informatie over het programma wanneer het wordt gecompileerd en de informatie wordt opgeslagen met het gecompileerde programma als metadata . Metadata, opgeslagen in het gecompileerde programma, vertelt de CLR welke taal is gebruikt, de versie ervan en welke klasse bibliotheken nodig zullen zijn voor het programma. De CLR maakt het mogelijk dat een instantie van een klasse die in een bepaalde taal is geschreven, een methode aanroept van een klasse die in een andere taal is geschreven. Het voorziet ook in garbage collection (het teruggeven van onnodig geheugen aan de computer), exception handling en debugging services.