Blog Mono de Christophe Narbonne

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

[Mono] Une première entorse au C#?

Comme tout sur terre est perfectible, y compris les technologies de développement Microsoft, quand une communauté de plusieurs personnes l'utilisent, des suggestions naissent...

Les expressions lambda sont un bon outil, mais parfois, notamment quand on veut indiquer une fonction sans argument... le gain de lisibilité est limité...

Voici la proposition:  

// mono/.NET C#
button.Clicked += (o, a) => Console.WriteLine ("ouch!");
Func myFunc = () => "blarg";
// mono C# (nécessite un patch, bientôt dans la branche principale ?)
button.Clicked +=> Console.WriteLine ("ouch!");
Func myFunc => "blarg";

Ainsi, en contexte d'attribution, "=>" peut créer et attribuer une expression lambda et "+=>" permet d'abonner un évènnement à une expression lambda. Rien de bien nouveau en soit, les méthodes anonymes du C#2.0 avec le mot clef delegate permettait aussi de faire sans parenthèses...

Bref un petit opérateur sans prétention risque donc d'enrichir notre compilateur et notre shell C#...

 

(Je vous l'avais promis et c'est vrai que j'ai tardé, mais le shell C# étant facile à installer sous ubuntu Karmic Koala, j'espère très bientôt pouvoir vous le présenter!)

Posted: juil. 24 2009, 20:34 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

Microsoft ouvre son standart.

Suite à une annonce faite par Peter Galli de chez Microsoft les normes ECMA du C# et du CLI passent sous les termes de "Microsoft Community Promise" 

Les gens trouvant que microsoft était un véritable danger potentiel pour les gens qui développaient en C# pour Linux dans la mesure où ils pouvaient potentiellement faire valoir leurs brevets pour plomber Mono, La partie sur le C# et la CLI s'est éclaircie...

Mono implémentant plus que ces spécifications (ADO.NET, WinForm...)  deux versions de mono seront proposés, évidemment une version sans litige avec des brevets Microsoftet une version complète qui a une plus grande compatibilité avec les applications .NET.

 
Posted: juil. 07 2009, 09:50 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

[Mono] Un pas en avant vers les développeurs sous windows

Vous aimez bien économiser sur votre hébergement en prenant des serveur linux mais vous voulez faire un site en ASP.NET? Vous aimeriez être sûr que votre application avec mono pourrait tourner sous mac OSX? Vous codez avec Visual Studio et ne comptez pas changer d'IDE?

Le projet mono ne vous oublie pas, vous pouvez simplement depuis Visual Studio en quelque clics lancer l'application .NET sur votre framework mono, sur un Mono distant, débugger dans une instance Mono distante ou même faire un contrôle du support des classes appelées grâce à MoMA... Mono n'est pas une pâle copie mais une ré-implémentation de la norme avec des librairies en plus et d'autre en moins, c'est pourquoi il faut rester conscient de la necessité de tests avant de passer sur mono une application qui paraissait fonctionelles sur .NET...

 

 

Si vous voulez faire du GTK#, que vous êtes sur Windows et que votre objectif est une application .NET multiplateforme, peut être qu'une des fonctionnalités de MonoDevelop vous a tapé dans l'oeil, rassurez vous, une version Windows de MonoDevelop est aussi en développement et déjà téléchargeable, cette version tourne avec la plateforme .NET de Microsoft et des bibliothèques Mono complémentaires. Le travail de portage pour utiliser le débugger de .NET et enlever les dépendances de gnome (pour recentrer vers du GTK)

 

 

 

Au final, l'équipe de Mono travaille à vous amener son travail pour vous aider à faire des applications multiplateforme.

MonoDevelop pour Windows
Plugin VisualStudio

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

Google Summer Of code: De bonnes perspectives pour Mono

Neuf personnes se sont engagées à contribuer au projet Mono auprès d'un mentor de l'équipe Mono et de Google. Leurs contributions seront financées par le projet Google Summer Of Code.


Ils sont tous venus avec des projets prédéfinis qui seront probablement intégrés à Mono en 2.6 ou 2.8 en fonction de la qualité du rendu. Voici les points pour lesquel les utilisateurs du projet Mono pourront remercier Google très bien tôt: 
  • Une amélioration et mise à jour de Mono ParallelFX. Éventuellement le développement d'un outil d'annalyse d'applications multi-tâches tel que Chess (utilisé pour répérer les éventuels problèmes de partages de mémoire entre les tâches).
  • Un outil d'optimisation du langage intermédiaire (CIL) c'est à dire du .exe ou .dll semi-compilé qui contrairement au compilateur temps réel (JIT) peut affiner ses optimisations quitte à prendre plus de temps.
  • Création d'une librairie GIT. GIT est un gestionnaire de versions créé par Linus Torvalds. Git est à SVN ce que bittorent est au Warez.
  • Un portage de Mono.SIMD pour processeurs 64 bits. Pour l'instant Mono.SIMD est pour systèmes x86.
  • Import de fonctionnalités du Visual Basic 9 dans le compilateur VB du projet Mono
  • Un moyen de créer des procédures Postgre en CIL pour permettre d'abstraire encore les développeurs du SQL y compris pour faire des procédures stockées.

 

Mais pour ceux qui aiment les outils de développement poussés et multi-plateforme, MonoDevelop n'est pas oublié:

  • Un générateur de classe Graphique, je suppose UML. L'exécutant du projet commencera par créer un Widget Canevas inter-opérable qui cherchera à rester suffisamment générique pour être intégré à GTK# à l'avenir. Ce contrôle pourait être fait en collaboration avec le projet suivant.
  • Un afficheur/éditeur graphique de base de données. remarque: MonoDevelop intègre déjà de quoi se connecter graphiquement à des bases de données et afficher dans des tables des retours de requêtes, mais là il s'agit d'une représentation de structure avec les liens entre les tables et autre.
  • Pour les utilisateurs de Mylyn sur eclipse, un plugin MonoDevelop permettra une intégration similaire avec des outils de gestion de projets en ligne ou hors ligne (Bugzilla/Trac).

Remarque: Ubuntu 9.04 jaunty jackalope est sorti: http://releases.ubuntu.com/9.04/

Posted: avr. 23 2009, 14:43 by christophen | Commentaires (4) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

[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] Mono 2.4 de sortie.

Et oui, Mono 2.4 est sorti aujourd'hui officiellement accompagné de MonoDevelop 2.0.

La liste de changements de Mono a déjà été évoquée, néanmoins, certains changements inatendu comme la refonte du site de MonoDevelop grâce au CMS ASPX/Mono de la société MindTouch : Deki Open Source Edition.

Pour ceux qui veulent pouvoir utiliser toutes les applications et tous les outils Mono dès maintenant et facilement, l'Appliance (qui est une image disque préinstallée pour faire des machines virtuelles) est aussi disponible au téléchargement.


Cette image intègre quelque des plus fameux logiciel gratuits/libres Mono.
Ces logiciels vont du lecteur de musique au jeu d'entrainement cérébral en passant par le client Torrent, le logiciel de prise de notes et le lanceur d'application.
Mais outre les logiciels traditionnels, cette image intègre aussi des sites APSX dans un dossier prévu à cet effet, la plupart sont des CMS compatibles .NET.
Pour finir le set, l'image intègre le set d'outil classique du projet Mono : MonoDevelop 2.0, l'interpréteur C#, le désassembleur...

 

Le changelog de MonoDevelop 2.0 (en)
Le changelog de Mono 2.4 (en)
Téléchargements

Posted: mars 30 2009, 22:21 by christophen | Commentaires (3) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

[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

[MONO] Linq et bases de données SQL Serveur, MySQL, SQLite...

LIQ2SQL est bien connu des amateurs de .NET, mais SQL serveur n'étant pas la base de donnée la plus utilisée par les programmes basés sur mono, DbLinq apparait comme bonne alternative. Elle a l'avantage de gérer en plus d'SQL Server les bases de données SQLite, firebird, postgreSQL, MySQL et Oracle tout en restant compatible.

Il faut donc spécifier le DbLinqProvider qui est pour des raisons de compatibilité par défaut SQL serveur.

Pour plus d'informations: http://www.jprl.com/Blog/archive/development/mono/2009/Mar-12.html

Cette assembly n'est pas encore qualifiable de stable, elle devrait arriver avec mono 2.6 en septembre qui sera probablement une release plus riche que 2.4...

Remarque: Mono 2.4 sortira finalement en fin de mois avec monodevelop 2.0

Posted: mars 14 2009, 16:22 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

Monodevelop 2.0 dans Ubuntu Jaunty Jackalope

Effectivement, Jaunty intègre déjà la dernière béta de Monodevelop.

Cette réalité présage une adoption rapide de la nouvelle version de l'IDE qui apporte effectivement de très interessantes nouveautés!



Merci à Canonical de nous offrir ça dès à présent packagé proprement.

Posted: mars 08 2009, 21:36 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News

Mono 2.4: Release Candidate

Et oui, ça ne chôme pas chez la communauté Mono, malgré un certain retard pour mono 2.2, mono 2.4 pointe déjà le bout de son nez.

Donc au menu des nouveautés :

  • support de l'ASP 3.5 (sauf Linq)
  • support des sites pré-compilés
  • l'ancien JIT a été supprimé au profit de celui introduit par mono 2.2
  • optimisation de SMID qui répond aussi mieux aux spécifications Mono
  • le garbage collector est désormais multithreadé par défaut.
  • MonoDevelop 2.0 version finale était supposé arrivé avec mono 2.4 mais n'arrivera qu'à la fin du mois.

Vous pouvez dès à présent tester cette pré-version:

http://novellevents.novell.com/t/9439988/75052628/15887/0/

PS : Nous attendons la version finale pour le 10 mars, avec la béta 2 de MonoDevelop

Posted: mars 03 2009, 18:21 by christophen | Commentaires (0) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Général | Mono | News