La troisième version majeure de Mono est disponible
La troisième version majeure de Mono est disponible
Support complet de C# 5.0 et de la programmation asynchrone, profil 4.5, amélioration du compilateur et des performances
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:
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 :
:fleche: Avez-vous mis à jour votre système ? Si non, allez-vous le faire prochainement ?
:fleche: 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
Quid de MVC3 et Entity Framework dans le monde réel ?
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 ?