Common Language Infrastructure

Common Language Infrastructure
Page d'aide sur l'homonymie Pour les articles homonymes, voir CLI.
Schéma explicatif du Common Language Infrastructure (CLI)

La Common Language Infrastructure (CLI) est une spécification ouverte développée par Microsoft pour sa plate-forme .NET qui décrit l'environnement d'exécution de la machine virtuelle basé sur CIL. La spécification définit un environnement qui permet d'utiliser de nombreux langages de haut niveau sur différentes plates-formes sans nécessité de réécrire le code pour des architectures spécifiques.

Le code répondant aux spécifications CLI est dit « managed code » en anglais, littéralement « code géré », ce qui est parfois traduit abusivement par « code managé ».

L'implémentation de la CLI inclut des fonctions pour gérer les erreurs, le ramasse-miettes, la sécurité et l'interopérabilité avec le système d'exploitation (les objets COM pour Microsoft window, gtk pour Mono de novell)

Sommaire

La spécification

La spécification CLI entre autres choses aborde trois aspects

The Common Type System (CTS) 
Un ensemble de types et d'opérations échangé entre programming languages compatibles CTS.
Metadata 
Information à propos de la structure d'un programme pour être utilisable par d'autre outils et langages
Common Language Specification (CLS) 
ensemble de règles que la CLI doit suivre pour permettre l'inter opérabilité des langages compatibles CLS. CLS est un sous ensembles de CTS .
Virtual Execution System (VES) 
VES charge et exécute les programmes compatibles CLI en utilisant lors de l'exécution le fichier metadata pour générer différents codes .

Implémentations

Plusieurs implémentations de la CLI et des bibliothèques (Microsoft) existent, notamment dans Mono et Portable.NET. Puisque le moteur d'exécution est décrit par une spécification de l'ECMA et de l'ISO, les autres implémentations ne sont pas génées par des problèmes de copyright. Il est plus difficile de développer des alternatives aux bibliothèques de classes de bases (BCL) qui ne sont pas décrites dans un standard ouvert et peuvent être sujet à des problèmes de copyright. De plus certaines parties des BCL ont des fonctionnalités et un comportement spécifiques à Windows qui peuvent être problématiques lors de l'implémentation sur des machines ne fonctionnant pas sous Windows.

NET Framework

L'implémentation de la CLI par Microsoft pour ses systèmes d'exploitations est appelée Common Language Runtime(ou CLR) et Dynamic Language Runtime(ou DLR). Au-dessus de cette implémentation ; Microsoft fournit de nombreux services, outils, bibliothèque, runtime : Framework .NET et .NET Compact Framework, support technique, Visual Studio. L'implémentation de la CLI par Microsoft supporte actuellement plusieurs langages comme C# (mélange de C++ et de Java), C++, J# (proche du Java, mais non compatible) et Visual Basic .NET.

Grâce à la disponibilité des spécifications techniques, différents acteurs sont libres d'ajouter le support pour un autre langage, ou un langage classique (notamment Cobol, Pascal, Fortran, Eiffel, Ada) ainsi que ASP.NET. D'ailleurs le langage Python sera sous peu utilisable grâce au projet IronPython alors que le PHP l'est déjà grâce au projet Phalanger.

Silverlight/Moonlight

Silverlight et Moonlight sont les implémentations respectives de Microsoft et Novell de la CLI s'exécutant dans l'environnement sécurisé d'un navigateur. Il fonctionne comme un applet. Silverlight est une partie du framework .NET tandis que Moonlight est une partie du projet Mono. Ils respectent donc tous les deux les spécificités CLI. Silverlight avait pour nom WPF/E pour faire référence à la nouvelle bibliothèque graphique de Microsoft de nom Windows Presentation Foundation fonctionnant sur la CLR. Ces technologies permettent de développer de vrai RIA côté client web. Les langages supportés par ces applets sont les mêmes que ceux supportés par le framework .NET ou Mono.

Mono

Mono est une implémentation de la CLI et de portions des bibliothèques de classes de bases (BCL) et fournit quelques fonctionnalités complémentaires. Mono est un logiciel développé sous la double licence : logiciel libre et logiciel propriétaire. Mono est développé par Novell et inclut un support web (ASP.NET, ADO.NET) et OS (Windows Forms). Un compilateur C# et VB.NET en version beta sont aussi inclus.

Autres

Des implémentations alternatives de certaines parties du framework sont listées ici :

  • Shared Source Common Langage Infrastructure[1] est une implémentation shared source du CLR du .NET Framework. Elle est compatible avec Microsoft Windows XP, FreeBSD et Mac OS X 10.2.
  • Portable.NET (partie de DotGNU) fournit une implémentation de la CLI, une partie des bibliothèques de classes de bases et un compilateur C#. Il supporte une large variété de processeurs et de systèmes d'exploitations.
  • CrossNet est une implémentation de la CLI est de certaines portions des bibliothèques de bases (BCL). C'est un environnement libre qui génère du code C++ non managé à partir des assemblies .NET. Ce code peut ensuite être compilé et lié dans n'importe quelle application se conformant au C++ AINSI et sur n'importe quelle plate-forme.
  • .NET for Symbian, une implémentation du .NET Compact Framework pour Symbian (S60)

Standards et licences

En août 2000, Microsoft, Hewlett-Packard, et Intel ont travaillé sur la standardisation de la CLI et du langage de programmation C#. Depuis décembre 2001, ces deux standards ont été ratifiés par l'ECMA (ECMA 335 et ECMA 334). L'ISO a suivi en avril 2003 (ISO/IEC 23271 et ISO/IEC 23270).

L'ECMA et l'ISO ont demandés à Microsoft et à tous ses partenaires qui détiennent les spécifications de la CLI et de C# de les rendre disponible sous le contrat de licence raisonnable et non discriminatoire Microsoft Reference Licence. En plus de cela, ces compagnies se sont accordés pour fournir ces spécifications sans redevance.

Néanmoins, ceci ne s'applique pas pour la partie du .NET Framework qui n'est pas couverte par l'ECMA et l'ISO, ce qui inclut les Windows Forms, ADO.NET, et ASP.NET. Les spécifications que Microsoft détient dans ces domaines peuvent dissuader les tentatives non-Microsoft d'implémentation du Framework complet.

Le 3 octobre 2007, Microsoft a annoncé qu'une grosse partie du code source des classes de bases du .NET Framework (Ce qui inclut ASP.NET, ADO.NET etWindows Presentation Foundation) seront disponibles avec la sortie de Visual Studio 2008 fin 2007 sous la licence Shared source[1] Les codes sources des autres bibliothèques (Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) et Language Integrated Query (LINQ) seront ajoutés plus tard. Le fait de fournir le code source sous la licence Microsoft Reference Licence signifie qu'il est fourni à des fins de débogage uniquement, essentiellement pour supporter le débogage des classes de bases sous Visual Studio.

Liens externes

Références

  1. Scott Guthrie, « Releasing the Source Code for the NET Framework ». Consulté le 2007-10-04

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Common Language Infrastructure de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Common Language Infrastructure — Not to be confused with Command line Interface. The Common Language Infrastructure (CLI) is an open specification developed by Microsoft and standardized by ISO[1] and ECMA[2] that describes the executable code and runtime environment that form… …   Wikipedia

  • Common Language Infrastructure — CLI (англ. Common Language Infrastructure) спецификация общеязыковой инфраструктуры. Наиболее известными реализациями этого стандарта являются Microsoft .NET Framework, Mono, DotGNU Portable.NET. Спецификация CLI определяет, в частности,… …   Википедия

  • Common Language Infrastructure — Die Common Language Infrastructure (CLI) ist ein ISO/IEC/ECMA Standard, der Systeme spezifiziert, die sprach und plattformneutrale Anwendungsentwicklung und ausführung ermöglichen. Momentan aktuell ist die Version 5 des Standards vom Dezember… …   Deutsch Wikipedia

  • Shared Source Common Language Infrastructure — The Shared Source Common Language Infrastructure (SSCLI), previously codenamed Rotor, is Microsoft s shared source implementation of the CLI, the core of .NET. Although the SSCLI is not suitable for commercial use due to its license, it does make …   Wikipedia

  • Shared Source Common Language Infrastructure — Die CLI (Common Language Infrastructure) ist ein ISO/IEC/ECMA Standard, der Systeme spezifiziert, die sprach und plattformneutrale Anwendungsentwicklung und ausführung ermöglichen. Momentan aktuell ist die Version 4 des Standards vom Juni 2006.… …   Deutsch Wikipedia

  • Common Language Runtime — El Common Language Runtime o CLR ( entorno en tiempo de ejecución de lenguaje común ) es un entorno de ejecución para los códigos de los programas que corren sobre la plataforma Microsoft .NET. El CLR es el encargado de compilar una forma de… …   Wikipedia Español

  • Common Language Runtime — (англ. CLR  общеязыковая исполняющая среда)  виртуальная машина, интерпретирующая и исполняющая код на языке CIL, в который компилируются программы, написанные, в частности, на .NET совместимых языках программирования (C#, Managed… …   Википедия

  • Common Language Runtime — NET Framework Basisdaten Entwickler: Microsoft Aktuelle Version …   Deutsch Wikipedia

  • Common Language Runtime — The CLR converts CIL to native code. The Common Language Runtime (CLR) is the virtual machine component of Microsoft s .NET framework and is responsible for managing the execution of .NET programs. In a process known as just in time (JIT)… …   Wikipedia

  • Common Language Specification — Die Common Language Specification (CLS) ist ein Teil des Common Language Infrastructure Standards, der die Entwicklung von programmiersprachenneutralen Programmkomponenten ermöglicht. Die CLS garantiert, dass jedes Programm bzw. jeder… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”