Blog Mono de Christophe Narbonne

Blog d'un passioné pour les passionés. Knowledge is Power

RecentComments

Comment RSS

[Mono] 2.6 revet son plus beau costume, il sort ce mois ci.

Cette version aura pris son temps pour sortir. Elle devrait arriver d'ici la fin de ce mois s'il n'y a pas de contre-temps. Elle embarquera des nouveautés intéressante, mais assez peu par rapport à ce qu'ont pu apporter précédentes versions qui avaient pourtant un cycle de développement plus court. La raison est simple, les employés de Novell qui développent Mono ont eu beaucoup à faire avec Mono-Touch, les outils d'intégration Visual Studio, MonoDevelop... Bref je soupçonne l'équipe d'avoir utilisé pas mal de leur temps sur des produits commerciaux dérivés qui espérons donnera une meilleure visibilité de Mono et lui garantiront un avenir plus sain.

 

Rassurez vous, il y a tout de même des nouveautés intéressantes à se mettre sous la dent, en voilà une liste non exhaustive.

Linq 2 SQL
C'est un premier pas de Linq vers base de données pour Mono... Mais il reste encore du travail, le but étant d'avoir la même API que System.Data.Linq.dll, mais pour un choix assez large de base de données à savoir:

  • Microsoft SQL Server
  • SQLite
  • Oracle
  • MySQL
  • PostgreSQL
  • Firebird
  • Ingres

Pour des raisons de compatibilité le connecteur par défaut de la chaine de connexion est SQL server. Un exemple simple pour utiliser sqlite:

var conn = new SqliteConnection (
"DbLinqProvider=Sqlite;" +
"Data Source=Northwind.db3"
);
var db = new DataContext (conn);
Il manque encore la prise en charge des requêtes compilées, d'appel de certaines méthodes en milieu de requêtes SELECT et globalement des lacunes au niveau de la compatibilité avec le LINQ to SQL de Microsoft.

.NET 4 (ParallelFx, DLR)
Mono 2.6 commence à implémenter C# 4.0 et .NET 4.0, peut être amené à changer significativement si Microsoft en fait de même d'ici leur version finale de .NET 4.0.
Grâce à Jérémie Laval et ses deux saisons de Google Summer of Code, nous avons de ParallelFX le Parallel Linq, Task Parallel Library, Data Structures For Coordination.
Pour l'instant il faut explicitement activer le mode .NET4.0 dans mono. Que ce soit pour faire des compilations de C#4 ou l'exécution en profitant des modifications pour les variables dynamiques.

 

 

LLVM
LLVM est un interpréteur poussé par Apple, d'autres boites dont google s'intéressent de prêt à ce projet. Au lieu d'une Machine virtuelle standard, il est plus comme un "Processeur virtuel" qui a un assembleur propre. LLVM une fois que le code dans son assembleur lui est transmis fait des optimisations et génère éventuellement du code Natif.

Citation de Macpuissancedix ( cas du langage C/Objective-C ) http://www.macpuissancedix.com/Sir_06_09.php

Clang/LLVM apportent deux attributs importants que vous êtes en droit d'attendre d'un nouveau compilateur au goût du jour : des délais de compilation plus courts et des exécutables plus rapides. Selon les tests d'Apple avec ses propres applications (ex: iCal, Address Book ou même XCode) et des applications tierces (ex: Adium ou Growl)... Clang compile à peu près trois fois plus vite que GCC 4.2. Quant à la vitesse du produit fini, LLVM en arrière plan, [...] les exécutables sont 5% à 25% plus rapides que ceux créés par GCC 4.2.

Mono peut compiler du langage intermédiaire vers de l'assembleur LLVM. Ça permet au cout d'une première compilation plus longue et plus gourmande et d'un temps de démarrage supérieur d'augmenter significativement les performances de votre solution. Pour les parties de Code que LLVM ne compile pas encore, l'application, à l'exécution saura automatiquement appeler le JIT de mono.



C# Shell
La complétion est arrivée dans le C# shell! C'est vrai qu'on s'habitue vite à ces outils... C'était vraiment le détail qui en faisait un outil plus élitiste que purement pratique.

Xbuild
Xbuild est la réimplémentation de la méthode standard de compilation de Visual Studio.
Des avancées ont été menées autour de Xbuild, l'implémentation de MSBuild. les valeurs ajoutées:

  • Prise en charge des projets ASP.NET  à la fois WebApplication et WebSite projects.
  • Des possibilités d'extentions de Xbuild ont été ajoutées.
  • Les assemblies locales sont mieux détectées.
  • Les évènements Pre/PostBuildEvents du projet sont désormais gérés.
  • Et de nombreux bugs de compatibilités qui restaient...


SIMD
Le Namespace SIMD a été revu pour avoir des noms répondant mieux aux conventions de nommage de Mono, quelques instructions SSE ont été ajoutées, et enfin, l'API a été implémentée pour les systèmes installés en 64 bits.


Mono.Tasklet.Continuation
C'est une nouvelle classe qui elle n'est pas portable .NET car requiert des modifications du Runtime, permet de gérer des états, faire des "Rollback" pour revenir à un lieu d'exécution pré-établi...

Autre :

  • Possibilité de débogage distant (Utilisé par Mono-Tools for VisualStudio et MonoTouch)
  • De nombreuses corrections de bugs notamment dans l'api winform comme à chaque release.
  • Une bien meilleure prise en charge des classes génériques en AOT (compilation complète).
  • System.IO.Packaging qui c'est popularisé dans les projets .NET est passé de la branche Olive de mono à sa distribution principale. C'est un fait rare, la branche Olive est la branche ou le projet mono fait avancer à petite vitesse les librairies compatibles MS qui n'intéresse pas grand monde directement... On trouve encore dans cette branche de délaissés WCF, WPF, les Workflow.

 

 

Remarque
Il ne serait pas étonnant que Mono 3.0 qui succèdera à Mono 2.6 et 2.8 se coordonne avec Gnome 3.0 qui lui a une date de sortie fixée en septembre 2010. Le rythme des sorties de mono ayant ralenti, on peut s'attendre à un rythme comparable avec une sortie tous les 6 mois qui est la façon de faire de gnome et Ubuntu. Trêve de spéculations, l'avenir nous en dira bien assez.

Posted: nov. 13 2009, 16:05 by christophen | Commentaires (3) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News | Présentation

Commentaires

Stifu said:

Perso, j'ai pas l'impression que la version 2.6 sortira ce mois-ci. Jusqu'ici, seule la Preview 1 est sortie (le 1er octobre). Silence radio depuis. À noter l'inclusion de dernière minute du soft debugger (http://tirania.org/blog/archive/2009/Nov-04.html), qui est sûrement responsable, au moins en partie, de ce retard (http://go-mono.com/forums/#nabble-td26318269).

# novembre 21 2009, 17:53

christophen said:

pas vraiment à la dernière minute, le soft debugger était déjà dans le brouillon de release note quand j'ai écrit l'article... j'ai d'ailleur appelé ça débogage distant... mais effectivement il arrivera... d'ici quelques semaines ^^.

# novembre 21 2009, 23:42

Stifu said:

Ça dit "December 2009" sur la roadmap maintenant. ;)

# novembre 25 2009, 15:20

Ajouter un commentaire




biuquote
  • Commentaire
  • Aperçu immédiat
Loading

captcha

*