Question

Je veux savoir quelle est exactement la différence entre CLR & amp; CLI? D'après ce que j'ai lu jusqu'à présent, cela semble indiquer que le CLI est un sous-ensemble du CLR. Mais tout dans le CLR n'est-il pas obligatoire? Que peut-on exactement laisser en dehors du CLR pour créer un CLI?

Était-ce utile?

La solution

Le CLR est l'implémentation par Microsoft du Norme CLI .

Autres conseils

CLR est l'environnement d'exécution dans lequel une application .NET est hébergée / exécutée en toute sécurité.

Vous pouvez le voir comme système d'exploitation privé .NET qui démarre et se charge juste avant le démarrage d'une application .NET.

Le CLR prend en charge certaines exigences essentielles de toute application .NET qui, autrement, nécessiteraient l'écriture de nombreux codes délibérés pour la mise en œuvre. les exigences de nature holistique et essentielles à tout type d’application pour fonctionner de manière efficace, efficace et sûre [p. ex. Traitez l'allocation de mémoire et libérez-la lorsqu'elle n'est pas nécessaire, évitez les pointeurs en suspens, les erreurs de transtypage, etc.]

CLI, d’autre part, est une spécification / un ensemble de directives expliquant comment implémenter un environnement d’exécution d’application et la nature du code d’application généré permettant à plusieurs langages de haut niveau d’être utilisés sur différentes plates-formes informatiques sans être réécrits. architectures spécifiques.

CLI est développé par Microsoft et normalisé par ISO et ECMA.

Le CLR est une implémentation pratique de la section VES [Virtual Execution System] de CLI et constitue l’un des composants principaux de la plate-forme MS.NET

.

Dans la langue d'un profane, le CLI est une recette tandis que le CLR est la cuisine: -)

Le CLR (Common Language Runtime) est une implémentation de VES (Virtual Execution System) par Microsoft. Le VES ainsi que le CTS (système de types communs), le CLS (spécification de langage commun) et la spécification de métadonnées font tous partie de la spécification CLI (infrastructure de langage commun).

Le VES est une spécification de machine virtuelle normalisée qui doit être mise en œuvre pour charger et exécuter des modules CIL (Common Intermediate Language) (dll et exe). Une implémentation VES fournit également des services d'exécution tels que le nettoyage de la mémoire et la sécurité.

Normes d'infrastructure linguistique commune C # et ECMA

CLR est l’environnement d’exécution .net dans lequel toutes sortes d’applications .net sont exécutées. Par exemple, lorsque vous écrivez votre code avec C # ou un autre langage de la pile de points NET, le compilateur le compile et le convertit en module géré. Un module géré est un langage intermédiaire (IL) et des métadonnées. Avant tout, le point important à retenir est que chaque fois que vous compilez votre code source, le compilateur le traduit en module géré. Pour clarifier, ceci n’est pas un code machine que votre processeur va exécuter. En fait, IL est un langage intermédiaire proche du langage assembleur. Il est tout aussi célèbre en tant que langage machine orienté objet.

Consultez cet article pour une explication plus détaillée:

http://alevryustemov.com/programming/common-language-runtime/

CLR est l’environnement complet dans lequel CLI, CTS, CLS fonctionne en intégration, il inclut également la récupération de place, la gestion de la mémoire, la sécurité, le langage immédiat pour le code natif ... CLI est une spécification du format du code exécutable et de son exécution. environnement qui peut exécuter ce code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top