Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Common Language Infrastructure

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirCLI.

Schéma explicatif du Common Language Infrastructure (CLI).

LaCommon Language Infrastructure (CLI) est unespécification ouverte développée parMicrosoft pour sa plate-forme.NET qui décrit l'environnement d'exécution de lamachine virtuelle basé surCIL. 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.

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, leramasse-miettes, la sécurité et l'interopérabilité avec lesystème d'exploitation (les objets COM pour Microsoft Windows, gtk pour Mono de Novell)

La spécification

[modifier |modifier le code]

La spécification CLI entre autres choses aborde trois aspects

TheCommon Type System (CTS)
Un ensemble detypes et d'opérations échangé entrelangages 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 |modifier le code]

Plusieurs implémentations de la CLI et des bibliothèques (Microsoft) existent, notamment dans Mono et Portable.NET. Puisque lemoteur 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 unstandard 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 |modifier le code]

L'implémentation de la CLI par Microsoft pour ses systèmes d'exploitation est appeléeCommon Language Runtime (ou CLR) etDynamic 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 commeC# (mélange deC++ et deJava),C++,J# (proche du Java, mais non compatible) etVisual 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 (notammentCobol,Pascal,Fortran,Eiffel,Ada) ainsi queASP.NET. D'ailleurs le langagePython est utilisable depuis 2006 grâce au projetIronPython,PHP en étant déjà à cette époque la version 2 du projetPhalanger[1].

Silverlight/Moonlight

[modifier |modifier le code]

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 unapplet. 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ésCLI. Silverlight avait pour nom WPF/E pour faire référence à la nouvellebibliothèque graphique deMicrosoft de nomWindows Presentation Foundation fonctionnant sur laCLR. Ces technologies permettent de développer de vraiRIA 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 |modifier le code]

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 ladouble licence :logiciel libre etlogiciel propriétaire. Mono est développé parXamarin et sponsorisé parNovell et inclut un support web (ASP.NET, ADO.NET) et OS (Windows Forms). Uncompilateur C# et VB.NET en version beta sont aussi inclus.

Autres

[modifier |modifier le code]

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

  • Shared Source Common Langage Infrastructure[1] est une implémentationshared source du CLR du .NET Framework. Elle est compatible avecMicrosoft Windows XP,FreeBSD etMac OS X 10.2.
  • Portable.NET (partie deDotGNU) 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 |modifier le code]

En,Microsoft,Hewlett-Packard, etIntel ont travaillé sur la standardisation de la CLI et du langage de programmationC#. Depuis, ces deux standards ont été ratifiés par l'ECMA (ECMA 335 etECMA 334). L'ISO a suivi en (ISO/IEC 23271 etISO/IEC 23270).

L'ECMA et l'ISO ont demandé àMicrosoft et à tous ses partenaires qui détiennent les spécifications de la CLI et deC# de les rendre disponible sous le contrat de licenceraisonnable et non discriminatoireMicrosoft 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 lesWindows Forms,ADO.NET, etASP.NET. Les spécifications queMicrosoft détient dans ces domaines peuvent dissuader les tentatives non-Microsoft d'implémentation du Framework complet.

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

Liens externes

[modifier |modifier le code]

Références

[modifier |modifier le code]
  1. (en)Phalanger - The PHP Language Compiler for the .NET Framework
  2. Scott Guthrie, « Releasing the Source Code for the NET Framework »(consulté le)
v ·m
Composants
Langages de programmation
Visual Studio
Autres
Environnements de développement
Bibliothèques complémentaires
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Common_Language_Infrastructure&oldid=232315947 ».
Catégorie :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp