Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
.NET fournit un environnement d’exécution appelé Common Language Runtime qui exécute le code et fournit des services qui facilitent le processus de développement.
Les compilateurs et les outils exposent les fonctionnalités du Common Language Runtime et vous permettent d’écrire du code qui tire parti de l’environnement d’exécution managé. Le code que vous développez avec un compilateur de langage qui cible le runtime est appelé code managé. Le code managé bénéficie de fonctionnalités telles que l’intégration inter-langues, la gestion des exceptions inter-langages, la sécurité renforcée, la gestion des versions et le déploiement, un modèle simplifié pour l’interaction des composants et le débogage et les services de profilage.
Remarque
Les compilateurs et les outils peuvent produire une sortie que le Common Language Runtime peut consommer, car le système de type, le format des métadonnées et l’environnement d’exécution (le système d’exécution virtuelle) sont tous définis par une norme publique, la spécification ECMA Common Language Infrastructure. Pour plus d’informations, consultez Les spécifications ECMA C# et Common Language Infrastructure.
Pour permettre au runtime de fournir des services au code managé, les compilateurs de langage doivent émettre des métadonnées qui décrivent les types, les membres et les références dans votre code. Les métadonnées sont stockées avec le code ; chaque fichier exécutable portable Common Language Runtime (PE) pouvant être chargé contient des métadonnées. Le runtime utilise des métadonnées pour localiser et charger des classes, mettre en place des instances en mémoire, résoudre les appels de méthode, générer du code natif, appliquer la sécurité et définir des limites de contexte d’exécution.
Le runtime gère automatiquement la disposition des objets et gère les références aux objets, en les libérant lorsqu’ils ne sont plus utilisés. Les objets dont les durées de vie sont gérées de cette façon sont appelés données managées. Le garbage collection élimine les fuites de mémoire et d'autres erreurs de programmation courantes. Si votre code est géré, vous pouvez utiliser des données gérées, non gérées ou les deux dans votre application .NET. Étant donné que les compilateurs de langage fournissent leurs propres types, tels que les types primitifs, vous ne savez peut-être pas toujours ou avez besoin de savoir si vos données sont gérées.
Le Common Language Runtime facilite la conception de composants et d’applications dont les objets interagissent entre les langages. Les objets écrits dans différents langages peuvent communiquer entre eux, et leurs comportements peuvent être étroitement intégrés. Par exemple, vous pouvez définir une classe, puis utiliser une autre langue pour dériver une classe de votre classe d’origine ou appeler une méthode sur la classe d’origine. Vous pouvez également passer une instance d’une classe à une méthode d’une classe écrite dans une autre langue. Cette intégration inter-langage est possible, car les compilateurs et outils de langage qui ciblent le runtime utilisent un système de type commun défini par le runtime. Ils suivent les règles du runtime pour définir de nouveaux types et pour la création, l’utilisation, la persistance et la liaison aux types.
Dans le cadre de leurs métadonnées, tous les composants managés contiennent des informations sur les composants et les ressources contre lesquels ils ont été construits. Le runtime utilise ces informations pour vous assurer que votre composant ou votre application a les versions spécifiées de tout ce dont elle a besoin, ce qui rend votre code moins susceptible de s’interrompre en raison d’une dépendance non satisfaite. Les informations d’inscription et les données d’état ne sont plus stockées dans le Registre, où elles peuvent être difficiles à établir et à gérer. Au lieu de cela, des informations sur les types que vous définissez et leurs dépendances sont stockées avec le code en tant que métadonnées. De cette façon, la tâche de réplication et de suppression des composants est moins compliquée.
Les compilateurs de langage et les outils exposent les fonctionnalités du runtime de manière à être utiles et intuitives pour les développeurs. Certaines fonctionnalités du runtime peuvent être plus visibles dans un environnement que dans un autre. La façon dont vous rencontrez le runtime dépend des compilateurs de langage ou des outils que vous utilisez. Par exemple, si vous êtes développeur Visual Basic, vous remarquerez peut-être qu’avec le Common Language Runtime, le langage Visual Basic a plus de fonctionnalités orientées objet qu’auparavant. Le runtime offre les avantages suivants :
Amélioration des performances.
Possibilité d’utiliser facilement des composants développés dans d’autres langages.
Types extensibles fournis par une bibliothèque de classes.
Fonctionnalités de langage telles que l’héritage, les interfaces et la surcharge pour la programmation orientée objet.
Prise en charge du modèle de thread libre explicite qui permet la création d'applications évolutives multithread.
Prise en charge de la gestion des exceptions structurées.
Prise en charge des attributs personnalisés.
Collecte des ordures.
Utilisation des délégués plutôt que des pointeurs fonction pour une sécurité de type et une sécurité accrues. Pour plus d’informations sur les délégués, consultez Common Type System.
Versions de CLR
Les versions .NET Core et .NET 5+ ont une version de produit unique, c’est-à-dire qu’il n’existe aucune version CLR distincte. Pour obtenir la liste des versions de .NET Core, consultez Télécharger .NET Core.
Toutefois, le numéro de version du .NET Framework ne correspond pas nécessairement au numéro de version du CLR qu’il inclut. Pour obtenir la liste des versions de .NET Framework et de leurs versions CLR correspondantes, consultez les versions et dépendances de .NET Framework.
Articles connexes
Titre | Descriptif |
---|---|
Processus d’exécution managée | Décrit les étapes requises pour tirer parti du Common Language Runtime. |
Gestion automatique de la mémoire | Explique comment le « garbage collector » alloue et libère la mémoire. |
Vue d’ensemble du .NET Framework | Décrit les concepts clés du .NET Framework, tels que le système de type commun, l’interopérabilité inter-langage, l’exécution managée, les domaines d’application et les assemblys. |
système de type commun | Décrit comment les types sont déclarés, utilisés et gérés dans le runtime pour prendre en charge l’intégration inter-langages. |