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 des architectures spรฉcifiques.

Schรฉma explicatif du Common Language Infrastructure (CLI).

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 Windows, gtk pour Mono de Novell)

La spรฉcification

modifier

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 langages de programmation compatibles CTS.
Metadata
Information ร  propos de la structure d'un programme pour รชtre utilisable par d'autres outils et langages
Common Language Specification (CLS)
ensemble de rรจgles que la CLI doit suivre pour permettre l'interopรฉrabilitรฉ des langages compatibles CLS. CLS est un sous-ensemble 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

modifier

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

modifier

L'implรฉmentation de la CLI par Microsoft pour ses systรจmes d'exploitation 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 est utilisable depuis 2006 grรขce au projet IronPython, PHP en รฉtant dรฉjร  ร  cette รฉpoque la version 2 du projet Phalanger[1].

Silverlight/Moonlight

modifier

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

modifier

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 Xamarin et sponsorisรฉ 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

modifier

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'exploitation.
  • 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++ ANSI et sur n'importe quelle plate-forme.
  • .NET for Symbian, une implรฉmentation du .NET Compact Framework pour Symbian (S60)

Standards et licences

modifier

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รฉ ร  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 et Windows Presentation Foundation) seront disponibles avec la sortie de Visual Studio 2008 fin 2007 sous la licence Shared source[2] 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

modifier

Rรฉfรฉrences

modifier

๐Ÿ“š Artikel Terkait di Wikipedia

Common Language Runtime

NET. Il s'agit de l'implรฉmentation par Microsoft du standard Common Language Infrastructure (CLI) qui dรฉfinit l'environnement d'exรฉcution des codes de programmes

.NET Framework

machine virtuelle compatible Common Language Infrastructure (CLI), sous les noms de Common Language Runtime (CLR) et Dynamic Language Runtime (DLR). CLR est

Common Language Resources and Technology Infrastructure

projets correspondants. Common Language Resources and Technology Infrastructure Common Language Resources and Technology Infrastructure, gรฉnรฉralement dรฉsignรฉ

Microsoft .NET

dรฉtaillรฉsย : Common Language Infrastructure, Common Intermediate Language et Common Language Runtime. Le framework .Net repose sur la Common Language Infrastructure

Modulo (opรฉration)

ยซย GLSL Language Specification, Version 4.50.7ย ยป, section 8.3 Common Functions ยซย The Go Programming Language Specification - The Go Programming Languageย ยป,

Shared Source Common Langage Infrastructure

attenduesย ? Comment ajouter mes sourcesย ? Le Shared Source Common Language Infrastructure (SSCLI, ancien nom rotor) est l'implรฉmentation Microsoft de

CLI

Level Interface, une API de gestion de base de donnรฉes SQLย ; Common Language Infrastructure, une spรฉcification du Framework .NET de Microsoftย ; Commission

DotGNU

qui vise ร  crรฉer une bibliothรจque conforme aux spรฉcifications Common Language Infrastructure de Microsoft. DotGNU est maintenu par le projet GNU dans le