Blog Mono de Christophe Narbonne

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

RecentComments

Comment RSS

[Mono] public preview 2.8 est là.

Voilà que les vacances d'été se sont écoulées, entre les google summer of code et autre, vous vous doutez que le projet mono n'est pas tombé.

Les versions s'espacent de plus en plus à cause de la stabilisation liée à la maturité de l'api de mono, alors que les versions s'enchainaient, ça fait depuis décembre qu'il n'y a pas eu de version majeure.

Pour la version 2.6 de mono, Novell vendait un support commercial, la version 2.8 n'aura pas ce statut de support long terme, la prochaine version majeure de mono (3.0) parcontre devrait en bénéficier.

Donc la nouvelle version est bien sur le point d'arriver, cette version apporte beaucoup de nouveautées, et je vais vous faire un résumé francophone des améliorations en perspective.

L'organisation de l'équipe et des sources, déjà une nouveauté.

Très attachée à Gnome, l'équipe de mono a suivi ce projet dans le choix du gestionnaire de version. L'équipe de mono utilise désormais git pour gérer ses sources. Choix plus étonnant, ils ont laissé à github la tache de les héberger. Github est un site d'hébergement de source (voir sourceforge, google code...) qui est concus pour git. Là où ce choix étonne les puristes, c'est que github est un prestataire de service qui n'ouvre pas les sources de sa machinerie avec pour business model, faire payer les gens qui utilisent github en voulant garder leurs sources privées.

Ainsi, on peut voir l'activité de l'équipe mono et le set d'outil mono à cette adresse:
http://github.com/mono

Et pour ceux que ça interesserait, l'activité de la personalité emblématique de mono que je ne présente plus par peur de passer pour un fanboy:
http://github.com/migueldeicaza

Git et l'interet de la décentralisation.

Git était conçus à la base par Linus Torvalds pour gérer les source du kernel linux. L'utilisation de cet outil change entièrement la manière de travailler par rapport à ce qu'il y avait avant, c'est à dire SVN. L'organisation d'équipe n'est pas du tout pareille, mais je vais éviter de trop m'attarder sur ce sujet.

Comment s'ogranise un workflow git?
Les bases de git sur le site du zero.

Conséquences de ce changement.

Évidement, je n'en parlerais pas si c'était purement anecotique, voici quelques conséquences: Le code est plus testé, il est plus facile pour un contributeur externe de faire quelquechose et de le soumettre, il sera plus simple pour les gens qui veulent une version modifiée pour leur besoins de mono de la maintenir à jour, et du coup ça encourage les forks.

Du coup, mono aura à la fois un écosystème plus ouvert et plus de controle.

Notes de version de mono 2.8

Bon après ce petit aparté sur git qui j'espère vous encourragera à vous renseigner et/ou à contribuer voici les principales amélioration mono 2.8.

Garbage Collector

Le nouveau ramasse miette (Garbage Collector) semble dépasser les espérances de tout le monde, on peut donc désormais dire que l'écrat de performance entre mono et .NET c'est réduit au négligable (du moins sur les benchmarks que j'ai pu voir).

benchmark avec graphdb qui compare les performances entre mono et mono avec le nouveau garbage collector activé.
benchmark comparable comparant mono avec le nouveau garbage collector avec .NET.
benchmark de sites servis en asp.NET sous mono avec chaque GC.

Pour tirer parti de cette nouveauté qui est embarqué mais pas encore utilisée par défaut, il faudra ajouter l'option: --with-gc=sgen

Contributions de Microsoft

Microsoft offre de plus en plus de ses nouvelles biliothèques en MSPL, et quand c'est le cas, plus besoin de double développement, mono peut les intégrer telquelles:

.NET 4

Implémenté depuis des mois dans la version de dévelopement de mono, beaucoup de fonctionnalités de .NET4 sont là.

C#4 est intégralement implémenté.

ASP.NET 4.0 partiellement implémenté:

MultiThread

Plinq et Parallelfx font désormais parti de la distribution officielle.

Nomreux fixs qui permettent notemment de gagner en performance en multithread.

System.Collection.Concurrent a des objets qui passent lockless, plus rapides, mons gourmand en mémoire...

Le comportement de ThreadPool qui était resté similaire au fonctionnement dans .NET 1.1 a été mis à jour pour que les erreurs non gérées dans des threads ne soient plus silencieuses. Cette modification avait trainé car elle peut casser le comportement de pas mal d'applications mono. pour retrouver l'ancien comportement, il suffit de mofifier le .config associé au binaire.

LLVM

Une version patchée de LLVM permet de gérer 99% des méthodes de mscorlib:
http://github.com/mono/llvm

Néanmoins, une version standart de LLVM suffit pour pouvoir l'utiliser en complement du jit engine de mono.

Léger surcout de mémoire et de temps de démarage mais net gain de performances.

Désormais l'exécution avec llvm accéssible avec la simple option '--llvm' (alors qu'il fallait recompiler mono anterieurement).

Vous retrouverez mon descriptif de llvm dans cet article:
http://blogs.dotnet-france.com/christophen/post/2009/11/13/Mono-26-revet-son-plus-beau-costume-il-sort-ce-mois-ci.aspx

Autre ajouts

Ajout d'une bibliothèque destiné au calcul scientifique System.Numerics avec BigInteger et nombres complexes.
Linq2SQL arrive en standart.

Amélioration de la gestion du cache dans ASP.NET et une classe qui permet d'utiliser cet outil de cache dans d'autre contextes: System.Runtime.Caching .
Nombreuses améliorations de Xbuild (notemment le support des projets silverlight).
Pour faciliter les ajouts d'options (comme pour utiliser llv

m ou sgen), une variable d'environnement propose de gérer ça à votre place exemple:

export MONO_ENV_OPTIONS="--gc=sgen --llvm"

Meilleur support des binaires offusqués.
La compilation complète est désormais disponible aussi pour x86 en plus de PowerPC et ARM.

Éviter trop d'embonpoint

Avec tout ça, Mono prend un peu d'embonpoint. Néanmoins, il y a un peu de ménage et quelques bibliothèques et commandes passent l'arme à gauche.

.NET 1.1 n'est plus supporté, les applications qui étaient compilées en .NET 1.1 seront éxécutés en 2.0 avec un warning.

Des bibliothèques d'accès à des bases de données non maintenues, non utilisées ou redondantes sont suprimées ( ByteFX.Data, Mono.Data, FirebirdSql.Data.Firebird, Mono.Data.TdsClient, Mono.Data.SybaseClient, Mono.Data.SqliteClient)

Le moteur javascript de mono ayant peu de succès, n'étant pas assez complet et face à 3 moteurs javascript meilleurs est aussi retiré. (Mirosoft.JScript, Microsoft.Vsa + la commande mjs)

Mais pour gagner en légèreté il y a d'autre solution, suprimer des dépendences. Ainsi, mono a son implémentation minimaliste de glib (eglib) qui permet de porter plus facilement pour des architectures de precesseurs tierces et d'alléger la bibliothèque pour les systèmes n'ayant pas besoin de glib.

Conclusion

Cet article est très inspiré d'un document anglais plus complet que vous trouvrez à cette adresse:

http://www.mono-project.com/Release_Notes_Mono_2.8

Bref, ce document n'est évidemment pas exhaustif, et montre les raisons de l'entousiasme autour du prochain mono 2.8. Si vous n'êtes pas patient mais que vous ne voulez pas compiler votre mono, vous trouverez de quoi patienter ici.

http://mono.ximian.com/monobuild/preview/download-preview/

Posted: sept. 11 2010, 09:46 by Crovax31 | Commentaires (6) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News | Présentation

[Mono] [MonoDevelop] Un mini entity framwork compatible MonoTouch

Je suis assez impressionné par ce petit projet que je viens de découvrir, Entify.

Compatible monotouch, .NET, mono...

Ce projet à l'air d'être prometteur, ça faisait parti des rares fonctionnalités de dotnet qui manquait vraiment. vivement que le project gère plusieur type de bases!

Posted: avr. 12 2010, 07:57 by Crovax31 | Commentaires (2) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News | Présentation

[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

[Mono] Privilégié pour les super-calculateurs.

Effectivement, pour la gestion de grosses tables, de matrices, l'usage en calculs intensifs sur de super-ordinateurs, Mono présente des avantages sur .NET et Java.  

 On peut constater que même si la norme du .NET permet l'usage de long en index pour des tables, Windows 64 bits lui-même ne gérera pas de tables de plus de 2,147,483,648 entrées contre 9,223,372,036,854,775,808 pour mono (autrement dit plus de quatre milliards de fois plus grande).

Java lui a une norme qui ne permet pas l'usage de tables aussi grandes, il faudrait modifier le bytecode pour lui permettre d'arriver à la même limite que Mono.

 Mono est compatible avec plusieurs architectures dont ARM et MIPS. 

On peut voir des serveurs utilisant des processeurs MIPS moins cher et moins gourmands que les processeurs Intel/AMD.

Voici un exemple de constructeur (sicortex.com) dont je traduis la phrase de spécifications sur les processeurs de son serveur haut de gamme:

  • " Ces serveurs contiennent 5,832 processeurs MIPS 64 bits d'1.4GFlops, chacun consommant seulement 900 milli-Watts."

Mono permet de bénéficier pour les calculs vectoriels et matriciels des optimisations SIMD des processeurs modernes. Cette optimisation permet de rattraper le retard de performance par rapport à du code C si ce dernier est compilé sans SIMD.

Pour finir on devrait voir arriver des outils de gestion de tâche intéressants avec Mono 2.6, ces fonctions étant particulièrement utilisées dans les jeux vidéos et un peu technique et de plus étant part d'une nouvelle version de Mono, ils seront objets d'un autre article.

Posted: avr. 22 2009, 12:09 by christophen | Commentaires (2) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | Présentation

[Mono] ASP.NET MVC est bien là grâce à sa licence MS-PL.

Et oui, l'équipe Mono n'as pas eu à re-faire l'intégralité de ce set d'outils facilitant la mise en place de projets respectant l'architecture de programmation MVC: Modèle Vue Contrôleur.

Ce set d'outils embarque un plug-in Visual-Studio, un Template Visual Studio (projet vide), et la bibliothèque contenant des classes .NET (assemblie), les fichiers javascript et autre.

Comment mettre en place un site ASP.NET MVC avec Linux grâce à Mono:

Il faut au moins mono 2.4 et les références aux assemblies suivantes:

  • System.Web.Abstractions
  • System.Web.Extensions
  • System.Web.Routing (Pour ces trois premières références, il faut le paquet mono-extras sous OpenSuse.)
  • System.Web.Mvc (Si vous utilisez MonoDevelop, cette assemblies est dans le plugin MVC, mais elle sera intégrée dans Mono 2.4.1 et Mono 2.6)

  Vous pouvez ajouter le plug-in MVC dans MonoDevelop grâce au gestionnaire de greffons du menu "Outils":

 

 

Ceci vous installe le template, l'assemblie et ajoute quelques fonctions contextuelles à MonoDevelop.

Nous pouvons créer un site en faisant une Nouvelle solution MVC:

 

 

Nous avons donc un projet complet qui respecte l'architecture MVC grâce au Template.

Nous pouvons graphiquement ajouter des vues partiellement générées à la demande.

 



Bref si le fonctionnement vous intéresse, vous pouvez suivre la suite d'articles de Bertrand Vergnault à ce sujet dont voici le premier: ASPNET-MVC-Partie-1-Presentation-de-MVC

Pour ma part, j'espère que cette petite présentation vous aura intéressé.

 

Posted: avr. 04 2009, 20:37 by christophen | Commentaires (15) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News | Présentation

[Mono] [QT] Qyoto relancé par Synapse

Qyoto qui est le Bind mono pour application QT était un projet intéressant, mais inutilisé donc relativement voué à l'abandon.

Heureusement un projet est né: Synapse. Ce projet est donc le premier de telle ampleur à utiliser Qyoto. Le mainteneur principal de Synapse (Eric Buttler) a aussi développé un plug-in pour monodevelop nommé Qyotodevelop. Il permet d'importer les fichiers UI de QT Designer et donc de créer l'interface graphiquement.

 

 

Ce projet est un client de messagerie instantanée intégrant un certain nombre de services web (Flicker, Youtube, Twitter...), mais aussi Banshee qui est un gestionnaire de bibliothèque musicale pour afficher le morceau en cours de lecture.

 

Remarque: Ceux qui ont vu antitrust auront compris la référence. Je précise pour l'anecdote que Miguel De Icaza a participé à ce film et y figure même un bref instant dans son propre rôle. Pour rappel c'était un film ou la société Synapse qui s'occupait de gérer tout ce qui est communication et multimédia sur internet volait du code GPL et parfois venait à tuer pour éviter que ça se sache..

Image extraite du film
 
Posted: mars 21 2009, 11:28 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

Text Template Transformation Toolkit (T4)

Heureux soient les amateurs du module MVC d'asp.NET, vous avez apprécié la simplicité d'organisation du texte, la possibilité d'organiser le code en plein milieux de texte en ayant une sortie avec du code interne centrée autour du texte et non autour du code.

T4 est basé sur ASP.NET, il permet d'appliquer une transformation similaire à celle que l'on pourrait porter sur un site .NET dont les balises seraient en HTML...

Bien que ce ne soit pas très connu il parait que c'est déjà pas mal utilisé, supporté sous Visual Studio mais aussi MonoDevelop, le T4 apporte un moyen simple de mettre en forme du texte.

L'extension de fichier utilisée pour les texts templates est .tt.

 

Voici un exemple utilisé pour générer les RPM de mono.

 Ma découverte et l'image sont issus de cet article: http://tirania.org/blog/archive/2009/Mar-10.html

Posted: mars 14 2009, 18:06 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Astuce | Général | Présentation

.NET 4.0 apporte System.Shell.CommandLine

Et c'est bien évidemment là que l'on constate que Microsoft connait les lignes de commandes!

Qui, même sous windows, n'as jamais bidouillé les options d'un raccourci en espérant une sortie d'erreur plus verbeuse ou pour avoir accès à des fonctionnalités cachées?

.NET 4.0 l'as compris et amène une "Great New Shell Feature"!

Cet espace de nom palie donc à un manque en simplifiant le parsages d'options de lignes de commandes.

Mono ayant bien entendu des librairies propres et issu d'un monde ou la ligne de commande est plus utilisé avait déjà des outils pour ce genre de choses, vous allons donc pouvoir grâce à l'article de Miguel De Icaza (en) comparer System.Shell.CommandLine et Mono.Options.

Posted: févr. 22 2009, 14:57 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Monodevelop 2.0 Alpha2

Voilà deux semaines que cette révision est sortie et je me dois quand même de faire un récapitulatif des améliorations de Monodevelop par rapport à la version 1.0 qui était considéré par beaucoup déjà comme le meilleur IDE sous linux. MonoDevelop 2.0 rattrape beaucoup de son retard sur visualstudio en ajoutant un nombre très important de fonctionnalités et de plug-ins proposés que je vous présenterai fonction de mon intérêt, car il serait long de viser l'exhaustivité.

Notez que les impressions d'écran sont tirées des Release notes officielles. Pour les voir en pleine résolution vous pouvez faire clic-droit afficher.

  • Les nouveautés de gestion des projets
    •  Les WorkSpaces permettent de lancer/ouvrir en même temps plusieurs solutions indépendantes.
    • Possibilité d'ouvrir plusieurs solutions distinctes depuis la même instance
    • Possibilité d'organiser plus finement l'agencement par défaut et le dossier des solutions ou de définir pour un WorkSpace spécifique
  • Les Nouveautés sur le XML et le Web
    • Enfin la complétion sur les documents XML, ASPX, HTML...

    • La complétion sur les documents XML est disponible pour tout XML dont on a le XSD (XML Schema Document)
    • Bien qu'il n'y ait pas d'interface wysiwyg la toolbox permettra d'ajouter simplement les contrôles ASP.NET
    • Début de support pour faire des applications moonlight et pour la complétion XAML
  • Les Nouveautés de l'édition de Texte
    • La complétion est plus pertinente

    • La complétion peut suggérer (dans le cas d'un abonnement à une méthode il vous sera proposé de créer une classe anonyme avec la bonne signature)
    • Repliement du code (Régions, Méthodes) avec aperçu au survol
    • Large choix de coloration
    • Possibilité de splitter l'affichage (par exemple pour comparer deux sources)
    • Possibilité de voir sous la liste d'autocomplétion (Control la  rend transparente)
    • Possibilité d'insérer des extraits de code dans la ToolBox (Contien les Snipets par défaut)
    • Mode VI pour les gens qui ont appris à être productif avec cet éditeur.
  • Les Nouveautés en support de langages
    • La syntaxe C#3 est désormais comprise et complété correctement. (méthodes d'extension...)
    • Support du Boo.
    • Support du Python (Python natif, sans .NET... Pas Iron-Python)
    • Support du Vala (Un langage très inspiré du C# destiné a faire des applications GTK, ce langage compile vers du C et a de bonnes performances)
    • Support de IKVM ( une machine Java .NET)
  • Les Nouveaux outils
    • Ajout d'un navigateur d'assemblies (permet de voir les classes et signatures de méthodes de l'arbre des classes et namespaces)
    • Un menu de navigation  (Ctrl+tab) qui permet de naviguer en avançant par onglet, permet aussi de passer sur un outil (les éléments de la solution la liste d'erreur...)
    • Un menu qui propose d'overrider ou implémenter les éléments d'une classe ou interface.
    • Intégration du debugger et avancée pas-à-pas.

    • Gestion graphique des bases de données
    • Attribut qui permet d'ajouter les CustomControl GTK# dans la toolbox

Notez donc que MonoDevelop 2.0 promet des améliorations très notables et une sortie normalement en mars 2009.

Vous avez envie d'essayer MonoDevelop 2.0 ? Le support des projets VisualStudio 2005 et 2008 y compris pour les web-projets ne peut que vous aider à le faire.

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

Une des valeurs ajoutée de Mono: la portabilité et l'embarqué.

Mono a pour défaut d'être un peu moins performant que .NET et pourtant il a une place non négligeable dans "l'embarqué" ou les ressources sont souvent guettés sans vergognes pour gagner en masse, en cout de production en réduisant les spécifications du CPU, en autonomie...

Cet article vise à vous faire saisir les enjeux de Mono et les raisons pour lesquelles il est choisi malgré une stabilité et des performances un peu inférieure.

L'embarqué proposé par des compagnies:

Pourquoi Sandisk, grande entreprise de renom, marque de choix pour les cartes SD ou autre, a préféré utiliser la plateforme Mono pour développer son lecteur "Sansa Connect"? L'info n'est pas fraîche mais n'en est pas moins d'actualité. Les plus de cet appareil étaient outre le Wifi l'intégration avec Yahoo! Music, une interface fluide avec des effets corrects, la radio en streaming, bref... Un appareil correct encore noté correctement sur Amazon bien qu'il soit moins d'actualité plus d'un an et demi après sa sortie. L'intérêt de Mono est que l'on peut se créer son Embedded framework sur mesure et le réduire à la demande, le compiler avec seulement le strict nécessaire en spécifiant une option de compilation. Il suffira de composer un document XML des éléments à compiler ou non. La structure du Puzzle correspond à vrai dire mieux à Mono qu'au .NET. Même si on doit se l'assembler et qu'à base égale ce n'est pas autant optimisé, on peut enlever et mettre les pièces que l'on veut. En face .NET propose un framework portable et un Framework PC complet et compilé par version. De plus SanDisk en a profité pour s'économiser de nombreuses licences Windows Mobile en se compilant ses applications et son environnement pour sa plateforme.

 

 

La plateforme développement Unity3D servant à faire des jeux sur serveurs (en s'intégrant par exemple dans le navigateur par le biais d'un plugin) ou en local utilise aussi la plateforme Mono pour toute la gestion de logique (Scripting, AI ... Mais évidemment pas le moteur 3D). Leur "IDE" semble bluffant de simplicité, o

n dirait une fusion entre Blender et XCode (que connaissent les MacUsers). Unity marche sous Mac, XBox, PS3, Wii, IPhone (sans JailBreak), sous Windows mais pas encore de paquets pour Linux. L'intérêt est que ce soit hautement multiplateforme, puissant et que ça laisse le choix du langage. Les langages proposés par défauts pour les scripts sont le Boo (Iron-Python réadapté pour être mieux intégré au .NET), le C# et le JavaScript. Certains auront peut-être le poil irisé à l'association de C# à un langage de script, mais le projet Mono a développé un Interpréteur C# prévu à cet effet. Microsoft devrait implémenter ça avec C#5.0 dans... Un moment.

 

 

 

 

L'embarqué par la communauté:

Mono arrive aussi avec ses applications sur les tablettes internet Nokia (N800/N810 ...) dont la couche logicielle est open-source. Cet environnement/plateforme de développement Maemo permet de coder en C++ avec du GTK+ standard. GTK# et Mono avec des bindings pour Maemo.

 

Mono Tomboy sur Nokia N810 Maemo

 

 

Les NetBooks sont une certaine réussite et ceux même sans Windows, une initiative assez communautaire entamé avant la sortie du premier EeePC le voyait venir. Un projet visant à succéder à la "console Open-Source et Libre GP2X" en face de la GP2X Wiz, le projet OpenPandora. Cette console de format comparable à une Nintendo DS et prévu pour le jeu (notamment l'émulation car ils savent qu'aucun éditeur ne proposera de jeux pour cette console) a des spécifications qui peuvent laisser rêveur pour un prix abordable. Le choix de l'architecture ARM Cortex permet pour une cadence à 600 MHz un bon rendement et une faible consommation énergétique. Mono arrivera dessus vu que Canonical éditeur de la distribution Ubuntu devrai proposer des Jaunty Jackalope (dans cinq mois) une version compilée pour ARM de sa distribution incluant Mono. Un pas vers les PC incompatible Windows et Mono en seul recours pour le .Net. 

 

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