Mono (logiciel) | |
Développeur | Novell |
---|---|
Dernière version | 2.6.7 [+/-] |
Environnements | Multiplate-forme |
Licences | GNU GPL, GNU LGPL ou X11 |
Site Web | www.mono-project.com |
modifier |
Mono est une mise en œuvre libre (sous licence GNU GPL, GNU LGPL ou X11 selon les éléments) de la plate-forme de développement Microsoft .NET basé sur la CLI.
Mono a été initié par Miguel de Icaza au sein de sa société Ximian et est actuellement soutenu par Novell qui l'a rachetée en 2003.
Mono est une plate-forme de développement complète basée sur une mise en œuvre de la machine virtuelle .NET et des API de base définis à l'ECMA (également normes ISO). Mono supporte pour l'instant la version 2.0 du framework .NET de Microsoft.
Mono propose entre autres :
Souvent comparée à la plate-forme Java, cette plateforme en partage de nombreux aspects techniques comme l’utilisation d'un langage intermédiaire (IL pour Intermediate Langage, équivalent du bytecode Java), le support d’application web, la portabilité, et une API étendue fournie en standard.
Mono se démarque cependant de la solution de Sun :
La plate-forme est conçue pour des langages compilés et orientés objet. La mise en œuvre de IronPython a cependant démontré qu’il était possible d’obtenir des performances similaires avec un langage historiquement interprété. Également, la plate-forme est interfaçable avec d’autres langages compilés de manière traditionnelle, comme le langage C.
Mono consiste en quatre groupes de composants :
Les composants principaux incluent le compilateur C#, la machine virtuelle et les bibliothèques de classes de base. Ces composants sont construits selon les normes Ecma-334 et Ecma-335, permettant à Mono de fournir une machine virtuelle en ligne de commande compatible avec les normes établies, libre et ouverte.
La couche de compatibilité Mono/Linux/GNOME fournit des outils pour le développement d'applications en agrémentant les bibliothèques existantes de GNOME et d'autres libres. Cette couche inclut : Gtk# pour du développement d'interfaces graphiques, les bibliothèques permettant d'interagir avec le moteur de rendu Gecko de Mozilla, les bibliothèques d'intégration Unix, les bibliothèques de connexion aux bases de données, une couche de sécurité et le schéma de langage XML RelaxNG. Gtk# permet aux applications Mono de s'intégrer naturellement dans l'environnement de bureau GNOME. Les biblothèques de connexion aux bases de données permettent l'interaction avec les bases MySQL, SQLite, PostgreSQL, Firebird, Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle, db4o et plusieurs autres. Le projet Mono trace le développement des composants de connexion aux bases de données dans son site web.
La couche de compatibilité Microsoft propose une manière de porter aisément des applications Windows .NET vers GNU/Linux. Ce groupe de composants inclut, entre autres choses, ADO.NET, ASP.NET et Windows.Forms. Puisque ces composants ne sont pas couverts par les normes ECMA, ceux-ci restent sujets à l'inquiétude relevant des brevets et licences détenues par Microsoft.
Les outils rassemblent les outils nécessaires au développement des applications .NET sur les plateformes autres que Windows. Ceci inclus l'EDI MonoDevelop ainsi que ses composants, comme son débogueur.
Le schéma suivant résume la situation du projet par rapport au .NET Framework ainsi que les séparations entre les différents composants et leurs disponibilités sur les principaux systèmes d'exploitation :