Langage intermédiaire constitués d'instructions élémentaires de type “assembleur évolué”. Tous les langages supportés par la plate forme dotNET peuvent être compilé en code intermédiaire MS IL. Ce code intermédiaire peut ensuite être exécuté par le CLR, l'environnement d'exécution de la plate forme .NET. MS IL permet l'indépendance au langage.