La troisième version majeure de Mono est disponible

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Le , par LittleWhite, Responsable 2D/3D/Jeux
L'implémentation Open Source du framework .NET est disponible dans sa troisième version majeure et améliore le support du framework de Microsoft pour les machines UNIX, Windows, MacOS et autres.

Compilateur C#

Mono possède maintenant un support complet de C# 5.0 et de la programmation asynchrone.

Le compilateur a finalisé sa migration du générateur de code afin de pleinement utiliser l'API IKVM.Reflection. Cette fonctionnalité avait été commencée dans Mono 2.10 et est maintenant disponible par défaut. Avec cette fonctionnalité, les développeurs vont pouvoir utiliser mscorlib comme ils le souhaitent sans devoir recompiler un compilateur personnalisé. De plus, les exécutables multiples pour le compilateur ont été éliminés et l'unification dans un même compilateur diminue les temps de compilation.

Evaluation peut maintenant compiler des types

L'API Evaluator.Eval() n'est plus limité aux expressions et appels de fonctions : vous pouvez passer des namespaces, classes, interfaces et définitions de structures en tant que chaine de caractères et avoir un résultat compilé.
Code :
1
2
3
4
5
6
 
csharp> class X { public int a; } 
csharp> var t = new X () { a = 1 }; 
csharp> print (t.a); 
1 
csharp>
API Interface

Le compilateur exposé par la bibliothèque Mono.CSharp n'est plus limité à être un compilateur global. Maintenant vous pouvez instancier plusieurs blocs ayant chacun ses variables globales et types.
L'exemple suivant assigne une chaîne de caractères dans un contexte et un entier dans un second :
Code C# :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  
using System; 
using Mono.CSharp; 
  
class MyWorld { 
       public Evaluator Evaluator; 
  
       public MyWorld (string [] args) 
       { 
               var r = new Report (new ConsoleReportPrinter ()); 
               var cmd = new CommandLineParser (r); 
  
               var settings = cmd.ParseArguments (args); 
               if (settings == null || r.Errors > 0) 
                       Environment.Exit (1); 
  
               Evaluator = new Evaluator (settings, r); 
       } 
} 
  
class X { 
       static int Main (string [] args) 
       { 
               var first = new MyWorld (args); 
               var second = new MyWorld (args); 
  
               first.Evaluator.Run ("var Demo = \"hello, world\";"); 
               second.Evaluator.Run ("var Demo = 1;"); 
               first.Evaluator.Run ("print (Demo);"); 
               second.Evaluator.Run ("print (Demo);"); 
               return 0; 
       } 
}

Shell C# Interactif

Une nouvelle fonction d'affichage peut être utilisée à la place de Console.WriteLine(). De plus, le shell interactif utilise maintenant une syntaxe succincte qui ne nécessite plus de ';' à la fin des expressions :
Code :
1
2
3
4
 
csharp> 1 + 2 
3 
csharp>
Profil 4.5

Le profil 4.5 est un sous ensemble strict du profil 4.0 et est maintenant celui par défaut.
Comme le profil 4.5 est un sous ensemble du 4.0, ils partagent le même numéro d'assembly donc la bibliothèque 4.5 est actuellement installée dans le GAC. Les changements de ce nouveau profil incluent :
  • des nouvelles méthodes asynchrones ;
  • une API de compatibilité WinRT ;
  • de nouvelles assemblies (System.Net.Http, System.Threading.Tasks.Dataflow)


Optimisations à l'exécution

De multiples optimisations à l'exécution ont été rajoutées :
  • une nouvelle implémentation rapide de ThreadLocal<T>
  • optimisations de List<T>
  • support de nouveaux attributs pour forcer inlining
  • support d'une table complète de caractères de substitution Unicode
  • nouveau profiler pouvant être utilisé avec VTune Amplifier Profiler d'Intel
  • support des événements System.Net.NetworkInformation.NetworkChanged pour Linux


Installation de Mono 3

Des paquets précompilés pour de multiples systèmes (Linux, Solaris, MacOS X et Windows) et les sources peuvent être trouvés dans la section des téléchargements du projet.

L'installation à partir des sources est simple :

Pour la compilation de libgdiplus pour le support de System.Drawing :
Code :
1
2
3
4
5
6
 
$ tar xzf libgdiplus-3.0.tar.gz 
$ cd libgdiplus-3.0 
$ ./configure 
$ make 
$ make install
et pour compiler Mono :
Code :
1
2
3
4
5
6
 
$ tar xzf mono-3.0.tar.gz 
$ cd mono-3.0 
$ ./configure 
$ make 
$ make install

Votre opinion sur Mono 3 :
Avez-vous mis à jour votre système ? Si non, allez-vous le faire prochainement ?
Pensez-vous que le projet possède du retard sur l'implémentation de Microsoft ?

Source :

http://www.mono-project.com/Release_Notes_Mono_3.0


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de tomlev tomlev
http://www.developpez.com
Rédacteur/Modérateur
le 23/10/2012 21:48
Chapeau à l'équipe Mono qui fait un boulot assez exceptionnel

Ils arrivent toujours à suivre de très près les sorties de C# et .NET, et dans le cas de C# 5 ça n'a pas dû être facile (le support du code asynchrone avec async/await implique des réécritures de code assez complexes, pour extraire le code qui suit await en tant que continuation de l'appel asynchrone).

Pour ma part je n'utiliserai probablement pas Mono 3 vu que je ne développe que sous Windows, mais c'est cool de savoir que je pourrai retrouver un environnement familier si j'ai besoin de développer sur une autre plateforme.
Avatar de Squeak Squeak
http://www.developpez.com
Membre actif
le 23/10/2012 22:05
Ce projet a le vent en poupe et il peut se montrer une solution très intéressante dans le cadre d'un développement multi-plateformes.
Avatar de Nathanael Marchand Nathanael Marchand
http://www.developpez.com
Rédacteur/Modérateur
le 24/10/2012 0:23
Il est à noter, qu'avec l'ouverture de ASP.NET en Open Source, ils ont pu reprendre pas mal de choses pour proposer du MVC4 et Entity Framework notamment !
Avatar de acesyde acesyde
http://www.developpez.com
Membre chevronné
le 24/10/2012 8:00
C# 5.0 juste avant EF5, nous pouvons dire que les développeurs voulant se tourner vers mono pour être multiplateforme sont gâtés en cette fin d'année.

Merci à l'équipe de Mono
Avatar de eka808 eka808
http://www.developpez.com
Invité régulier
le 24/10/2012 12:38
La question que je me pose désormais est : est-ce que mono+apache ou autre devient une alternative intéressante à .NET/IIS ?

En clair, est-ce que l'on pourra, dans un futur proche faire tourner des applications MVC/EntityFramework dans un environnement LAMP ?
Avec des performances équivalentes ?
Sans s'arracher les cheveux ?
Avatar de Nathanael Marchand Nathanael Marchand
http://www.developpez.com
Rédacteur/Modérateur
le 24/10/2012 13:27
Citation Envoyé par eka808  Voir le message
La question que je me pose désormais est : est-ce que mono+apache ou autre devient une alternative intéressante à .NET/IIS ?

En clair, est-ce que l'on pourra, dans un futur proche faire tourner des applications MVC/EntityFramework dans un environnement LAMP ?
Avec des performances équivalentes ?
Sans s'arracher les cheveux ?

MVC tu peux déjà (la version 4) pour ce qui est de EF, bien que ca soit dispo, je suis pas sur que les connecteurs ADO.Net compatibles existent (ou peut être pas vers SQL Server).
Avatar de Rachel Rachel
http://www.developpez.com
Inactif
le 26/10/2012 12:23
et où télécharge-t-on la dernière version de la lib gdi+ ?
Edit : j'ai tenté maintes fois d'empaqueter mono, sans succès
Offres d'emploi IT
Développeur Web H/F
CDI
M2D2 - Bretagne - Rennes (35000)
Parue le 15/10/2014
Stage Consultant Business Transformation
Stage
SOLUCOM - Ile de France - Paris La Défense Cedex
Parue le 24/10/2014
Ingénieur de production informatique (H/F)
CDI
INTERNATIONAL RFID SOLUTIONS IRIS-RFID - Bretagne - Brest (29200)
Parue le 18/10/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula