Mono 2.0 : compatibilité .NET améliorée, C# 3.0 et LINQ

Un pas de plus vers le rêve des applications multi-plateformes 65
Une étape importante vient d’être franchie par le projet Mono, implémentation libre du Framework .NET, essentiellement réalisée par les développeurs de Novell, qui bénéficient d’ailleurs des ressources de Microsoft. Le passage à la version 2.0 marque un vrai tournant pour cet environnement, puisque la compatibilité avec le Framework .NET s’en trouve largement améliorée.

Bien que Mono soit un projet libre assurant un certain niveau de compatibilité avec l’environnement .NET initial, il peut être considéré également comme un environnement à part. De fait, il n’est pas disponible uniquement sous Linux, mais également sous Windows et Mac OS X. il est compatible avec les API de Microsoft suivantes :
  • ADO.NET 2.0 API pour l’accès aux bases de données
  • ASP.NET 2.0 API pour le développement d’applications web
  • Windows.Forms 2.0 API pour le développement de logiciels
  • System.XML 2.0: An API pour la manipulation de documents XML
  • System.Core: ajoute le support de Language Integrated Query (LINQ).
  • System.Xml.Linq: permet de manipuler LINQ depuis le XML
  • System.Drawing 2.0 API: une API portable de rendu graphique
On peut le voir, les liens avec le Framework .NET ont été largement remis au goût du jour, même s’il reste un certain retard. On notera en particulier le support de LINQ, qui permet à tous les langages .NET d’interroger notamment des bases de données. LINQ n’est apparu que dans la version 3.5 du Framework .NET, disponible depuis novembre 2007, et depuis mis à jour avec un Service Pack 1 améliorant largement les performances de certaines parties (en particulier Windows Presentation Foundation).

mono mono mono 

L’environnement Mono dispose lui-même d’API spécifiques qui permettent son utilisation selon le contexte :
  • Gtk# 2.12 : un lien avec la bibliothèque Gtk et celles de GNOME pour la création d’applications
  • Mono.Cecil : permet de manipuler les fichiers ECMA CLI
  • Mono.Cairo : permet d’utiliser la bibliothèque Cairo pour la production de graphiques 2D sous différentes formes, comme des fenêtres, des images, postscripts et PDF.
  • Mono's SQLite support : permet la création de base de données compatibles SQLite ou l’utilisation de bases de données créées avec SQLite
  • Mono.Posix : permet aux applications managées d’accéder aux fonctionnalités spécifiques des environnements Linux et UNIX, à bas niveau comme à haut niveau
Ajoutons d’autres caractéristiques comme :
  • Le support des bases de données PostgreSQL, DB2, Oracle, Sybase, SQL server, SQLite et Firebird
  • Une implémentation du compilateur C# 3.0
  • Le moteur de rendu web Gecko
Les développeurs précisent en outre que les performances générales de Mono ont été améliorées de manière significative pour un grand nombre d’opérations, en plus d’avoir une consommation mémoire en baisse.

Les utilisateurs intéressés par Mono pourront télécharger l’environnement depuis le site officiel. La liste complète des nouveautés peut être consultée sur cette page.