.NET et le choix éternel contre Java
Le framework .NET (prononcer Dotnet) est un environnement d'exécution de logiciel créé par Microsoft. Il fonctionne sur Windows et sur Linux.
.NET offre une bibliothèque de fonctions pour les interfaces graphiques, l'accès aux données, les réseaux et les applications Web, des compilateurs et une machine virtuelle.
Les composantes de .NET
Les programmeurs sous .NET intègrent un univers de systèmes et de composants à utiliser.
- WPF Windows Presentation Foundation.
Une interface qui inclut le graphisme en 3D, utilisé par Aero sous Windows. - WCF. Windows Communication Fondation.
Un système de message pour la communication entre ordinateurs. - WWF. Windows Workflow Foundation.
Gestion de tâches. - CLR Common Language Runtime.
Machine virtuelle qui exécute le code et permet de faire abstraction du matériel sur lequel il fonctionne. - Bibliothèque de classes.
Divisées en espaces de noms. - CIL Common Intermediate Language.
Langage intermédiaire standardisé résultant de la compilation des langages évolués, interprété par la machine virtuelle CLR. - Assembly.
Une assembly enregistrée en fichier au format PE (Portable Executable) contient le code en language intermédiaire. - Winforms Windows Forms.
Composantes d'interface graphiques. - CardSpace. Un composant pour sécuriser les codes d'accès sur le Web.
En fait le programmeur est surtout concerné par le choix d'une langage de programmation et des outils pour le compiler ainsi que des API disponibles pour réaliser l'application.
Les langages suivants fonctionnent sur .NET:
Ada, APL, Basic, C#, C++, Cobol, Eiffel, Fortran, Haskell, Oberon, Objective Caml, Pascal, Perl, Python, Ruby, Scheme, SmallTalk. Une liste complète est données dans l'article sur le CLI (voir bloc en bas de page).
Le langage XAML est intégré au système et permet de définir sous forme déclarative les interfaces graphiques.
Faut-il utiliser Java ou .NET?
Pour réaliser une application actuellement faut-il choisir l'environnement Java ou .NET? Compatibilité et richesse des fonctionnalités sont les clés pour un meilleur choix.
Java
Depuis novembre 2008, Java est sous licence Open Source, GPL au moins partiellement (ce n'est pas le cas de la version mobile).
Plusieurs langages de programmation on été portés sur cette plateforme et sont compilés en bytecode interprété par la JVM. Notamment Python et Ruby.
A partir de là, la question se pose: a-t-on encore besoin de Mono sous Linux, et faut-il opter pour un outil inspiré d'une technologie propriétaire de Microsoft et qui n'égalera jamais l'original, plutôt que pour une plateforme libre et entièrement compatible?
.NET et Mono
Mono est une version pour Linux compatible avec .NET 2.0 réalisée par Novell reprise par Xamarin. Mono est portable: il peut fonctionner sur tous les UNIX, sur MacOS et sur Windows. Il existe donc une version de .NET pour tous systèmes ce qui ouvre la voie aux applications Web sur cette plateforme.
Un avantage de Mono est qu'il est possible de compiler C# en code natif sous Linux ou Windows, le même code source exactement, de réaliser même des jeux comme le montre Unity qui s'est spécialisée dans le jeux sous Mono. Ils fonctionnent aussi sur les mobiles et les consoles de jeux.
Après le rachat de Novell par Attachmate, l'équipe de développement de Mono a décidé de former une compagnie indépendante, Xamarin.
Elle compte poursuivre le projet Mono et fournit des versions commerciales pour les principaux OS de smartphone dont Android et iOS.
Plus d'infos sur Tirania.org.
Silverlight et JavaFX
Mono et .NET ont encore un atout, c'est Silverlight, une technologie du Web utilisant une version allégée de .NET multi-navigateurs, et pour laquelle Mono offre un port sous Linux, Moonlight.
De son coté, Sun propose JavaFX, qui n'a pas la même facilité d'emploi que Silverlight et ne repose pas sur les standards comme HTML 5, mais qui se base sur une plateforme compatible avec tous systèmes...
Choisir entre Java et .NET coté serveur peut aller de pair avec choisir entre JavaFX et Silverlight, pour les pages Web.
Silverlight est abandonné dans l'interface Metro de Windows 8 et remplacé par HTML 5 + JavaScript ou XAML + laangage natif.
Les mobiles
La machine virtuelle Java, payante sur mobiles, est supplantée par Dalvik, un interpréteur alternatif pour Android et qui se trouve porté aussi sur d'autres OS.
Dans cet univers on a plutôt le choix entre Android ou Windows Phone 7 ou Windows 8, donc Dalvik + Java contre .NET + Silverlight.
Conclusion
Java se présente avec les avantages de l'ancienneté: stabilité, communauté, documentation, outils de développement nombreux, tandis que .NET offre plus d'ouverture: multiples langages, idées nouvelles,
La question de la compatibilité semble avec le temps s'estomper, les deux plateformes tendant à être de plus en plus portables et universelles.
Sous Windows 8, .NET est conservé pour les applications classiques, mais est remplacé par un sous-ensemble pour les applications immersives de Metro. Et Metro est l'interface privilégiée pour les nouvelles applications Windows.
Informations et outils
- Télécharger .NET.
- Silverlight.. Un runtime .NET est inclus dans les fichiers téléchargés.
- Visual Studio Express. EDI pour réaliser des applications fonctionnant sur .NET.
- JSC. Recompile les assembly .NET en JavaScript, PHP ou Java.
|
|
|
