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/
[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.
[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é.
[Mono] La définition.
Comme on me l'avait fait remarquer, mon blog parle de Mono mais je n'y ai jamais réellement donné une définition claire de ce que c'est. La plupart d'entre vous
devez savoir ce que c'est pour tomber sur mon blog mais, j'essaye de
cadrer un public assez large qui éventuellement chercherait plus de la
culture informatique que de la technique.
Définir et positionner Mono dans le monde informatique de manière illustrée et claire prend plusieurs pages, j'en ai fait le premier tutoriel Mono sur Dotnet-France.
Plutôt que d'être original, j'ai appelé ce chapitre "Introduction".
Comme Mono évolue beaucoup et que je suis d'assez prêt son actualité,
ce tutoriel est assez régulièrement mis à jour. La validation est
dans l'architecture actuelle par-contre parfois moins rapide que moi
.
Voici l'adresse des tutoriels Mono, la définition est le chapitre d'introduction: http://www.dotnet-france.com/Cours/Mono.html