article sur le Mono, Explication sur le Mono

Mono Article, Signification, Explication

Mono est une implémentation libre (sous licence GPL, LGPL ou X11 selon les éléments) de la plate-forme de développement Microsoft .NET soutenu par Novell.

Table of contents
1 Présentation
2 Comparaison avec la plateforme Java
3 Perspectives
4 Liens externes

Présentation

Mono est une plate-forme de développement complète basée sur une implémentation de la machine virtuelle et des API de base définis à l'ECMA (également normes ISO).

Mono propose entre autre :

  • des API indépendants de l'environnement : sécurité, base de données, web services, XML, web forms ;
  • des API destiné à la programmation sous GNU/Linux et plus particulièrement GNOME : GTK#, Glade# Gecko#, Gst# ;
  • des API compatibles avec le framework .Net de Microsoft avec en preview les Winforms (utilisation de WineLib) ;
  • un IDE (environnement de développement intégré) : Monodevelop, avec notamment le support de la complétion de code qui fait le bonheur des utilisateurs de Visual Studio et d'Eclipse ;
  • un outil pour naviguer dans la documentation : Monodoc, qui a l'originalité de pouvoir être modifié par le programmeur qui peut ensuite envoyer automatiquement les modifications au CVS de Mono ;
  • un compilateur pour le langage C# qui est souvent présenté comme une évolution du langage Java avec une pincée de C++. Sans être une révolution, ce langage apporte de réels plus qui le rendent très agréable et puissant. Mono propose également un compilateur Javascript et VB.NET ;
  • une préversion de C# 2.0 avec notamment le support des generics ;
  • un serveur web léger entièrement compatible avec le serveur ASP.NET qui permet d'utiliser n'importe quel langage de la plate-forme pour générer des sites web dynamiques. Un module Apache est également disponible.

Comparaison avec la plateforme Java

Souvent comparé à 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é (toute relative cependant pour les deux plateformes) et un ensemble impressionnant d'API fournis en standards.

Mono se démarque cependant de la solution de Sun :

  • la plate-forme décrit également un système facilitant l'interopérabilité entre les langages : le programmeur développe dans le langage de son choix mais sa bibliothèque pourra être utilisé par tous les langages de la plate-forme, de manière transparente, sans créer de bindings souvent lourds et coûteux à utiliser et maintenir ;
  • des fonctionnalités supplémentaires comme les métadonnées, la détection de débordement ou encore le versionning et la simplicité d'utilisation d'API écrits en C ;
  • la plate-forme Java est une solution propriétaire alors que Mono est une implémentation libre des normes de l'ECMA qui garantissent entre autres l'impossibilité de faire valoir des brevets logiciels (seuls les WinForms, spécifiques à Windows et non normalisés à l'ECMA, sont susceptibles de poser des problèmes légaux).

Note : la plate-forme est conçue pour des langages compilés et orientés objet. L'implémentation de Python IronPython a cependant démontré qu'il était tout à fait possible d'obtenir des performances similaires avec un langage historiquement interprété. Il faut également noter que la plate-forme est facilement interfaçable avec d'autres langages compilés de manière traditionnelle comme le langage C.

Perspectives

Présentant de nombreux atouts face à son principal concurrent Java, Mono a toutefois le handicap de la jeunesse, la documentation n'est pas complète (cependant il est possible d'aller consulter la documentation impressionnante du site MSDN de Microsoft ou encore la documentation de GTK+), les performances sont encore en retrait par rapport à l'implémentation de Microsoft : il n'y a pas de comparatifs entre Mono et Java sous GNU/Linux, mais est-ce un mal étant donné l'objectivité et l'exhaustivité de ceux-ci ? De plus l'IDE n'est pas terminé, la compatibilité avec la version de Microsoft n'est que partielle et n'est prévue que dans les prochaines versions.

De nombreux débats ont lieu sur une éventuelle intégration de Mono au projet Gnome : en effet la fondation GNOME cherche a fournir une nouvelle plateforme qui éviterait notamment le support de plusieurs bindings pour différents langages tout en proposant un langage de plus haut niveau que l'actuel C. Reste le problème « philosophique » de l'intégration d'une technologie initialement développée par Microsoft. Mais il n'y a pas de réelle solution alternative qui soit libre et qui respectent des standards (DotGNU étant un projet similaire, avec les même avantages et inconvénients). Cette intégration n'est cependant pas à l'ordre du jour et il est sans doute nécessaire d'attendre que la plate-forme Mono atteigne une certaine maturité.

Liens externes


C'est un article concernant le Mono. La page contient la signification du Mono , Description et explication au sujet de Mono

recherche quelque chose