Sommaire

L’environnement .NET

1. Le code managé et la machine virtuelle CLR

Comme Java, .NET fait partie de la famille des environnements virtualisés. Le compilateur C++ managé ne produit pas du code assembleur directement exécuté par le microprocesseur mais un code intermédiaire, lui-même exécuté par une machine "virtuelle", la CLR (Common Language Runtime). Cette couche logicielle reproduit tous les composants d’un ordinateur - mémoire, processeur, entrées-sorties… Cette machine doit s’adapter au système d’exploitation qui l’héberge, et surtout optimiser l’exécution du code.

Il y a là une différence importante entre .NET et Java. Alors que Microsoft a évidemment fait le choix de se concentrer sur la plate-forme Windows, d’autres éditeurs ont porté Java sur leurs OS respectifs - Unix, AIX, Mac OS, Linux… La société Novell a cependant réussi le portage de .NET sur Linux, c’est le projet Mono.

Cet environnement virtualisé a une conséquence très importante sur les langages supportés ; les types de données et les mécanismes objets sont ceux de la CLR. Comme Microsoft était dans une démarche d’unification de ses environnements, plusieurs langages se sont retrouvés éligibles à la CLR, quitte à adapter un peu leur définition. Le projet de Sun était plutôt ...