WinRT, Windows 8 et le futur du .NET

Pour ceux qui ne sont pas au courant, du 13 et 16 septembre à Anaheim, California, Microsoft a organisé la conférence BUILD 2011.

Browse all sessions from BUILD

L’objectif principal de cette conférence a été le lancement de la future version de Windows 8 et Windows 8 Server. Bien sûr, ce qui nous intéresse est la nouvelle plateforme de développement appelée WinRT (pour Windows Runtime) introduite dans cette version de Windows et qui change (encore une fois!) la façon dont on développe nos logiciels sur Windows. Mais d’abord…

Microsoft a publié une version “Windows 8 Developer Preview” (avant Beta) de ce système d’exploitation. Je recommande le téléchargement de l’iso avec les “developer tools” pour avoir également la nouvelle version de Visual Studio 2011 Express et de Microsoft Blend 5 les deux en version Developer Preview.

On observe, dés l’installation du système, que Windows nous demande de saisir notre identificateur Windows Live. Il s’agit de la tendance de passer d’un modèle classique “local”, à un autre modèle “cloud” qui permet d’avoir accès à nos données à partir de n’importe quelle machine Windows 8. Mais la chose qui frappe le plus est la nouvelle interface Metro présente sur Windows 8 qui change fondamentalement la façon dont on utilise Windows depuis 1995.

metro

Il est tout de même possible, à partir de la nouvelle interface Metro, de passer à l’interface classique “Desktop” qu’on connait tous. Personnellement j’ai tout de suite eu l’impression de travailler en même temps sur deux systèmes d’exploitation différents.

L’impression n’est pas tout à fait injustifiée car en regardant plus en détail le nouveau modèle de développement d’applications en Windows 8 on voit que, en effet, il y a des différences d’implémentation entre les applications créées pour l’interface classique Desktop et celles créées pour l’interface Metro. Ces différences viennent de WinRT comme illustré dans le schéma suivant présenté par Microsoft pendant la conférence BUILD:

[WinRT5.png]

Donc deux modèles différents de programmation: Metro Style et Desktop.

En mode Desktop rien ne change. On garde les mêmes applications qu’on a implémentées pour Windows 7 ou les versions précédentes. On peut toujours développer des applications .NET ou Win32.

Par contre en mode Metro, WinRT remplace complètement l’API Win32 ou .NET. On peut construire maintenant des applications Windows natives équivalentes en C/C++/XAML, en C#/VB/XAML ou en JavaScript/HTML5/CSS.

vs2011expressdevprevCréation d’un nouveau projet en Visual Studio 2011 Express Developer Preview

La surprise est l’adoption par Microsoft de HTML 5 comme langage principal à coté de langages “classiques” comme C++ ou C#. D’ailleurs la future version de Blend 5 pourra être utilisée pour créer des interfaces en HTML5 et pas seulement WPF ou Silverlight.

Dans ces conditions on voit que les technologies .NET vont perdre de leur importance devant HTML5/Javascript/CSS. En futur on n’aura plus besoin de connaitre C++ ou C# ou XAML pour créer des applications Windows. On pourra utiliser  HTML5 / JavaScript / CSS pour implémenter des solutions Web et/ou Windows.

Bonne nouvelle pour les développeurs HTML5, mauvaise nouvelle pour les développeurs .NET. Déjà le sujet est pas mal discuté sur plein de forums et blogs sur Internet. D’autant plus que la courbe d’apprentissage des technologies comme XAML est assez raide et certains ne verront pas l’intérêt d’investir dans ces technologies.

Encore une mauvaise nouvelle pour les développeurs Silverlight est que, apparemment la version Metro d’Internet Explorer 10 sera “plugin free” c’est à dire les plugins tels que Flash ou Silverlight ne seront pas supportés. La version Desktop par contre continuera à supporter les extensions et les plugins.

L’avantage pour les développeurs .NET est que apparemment l’API de WinRT est assez similaire à celle de .NET ce qui facilite l’apprentissage (cliquez ici pour plus de détails sur les différences).

En fin, pour le moment ce n’est pas le cas de s’inquiéter. Les raisons sont multiples et je vais essayer d’en énumérer quelques-unes. D’abord Windows 8 n’est pas encore sorti, il n’est même pas dans un état beta pour l’instant. HTML 5 vient d’apparaitre et il est loin d’être standardisé. D’ailleurs Microsoft travaille avec le W3C pour introduire et standardiser certains de ses contrôles comme “grid” utilisé dans les applications “Metro style”. L’interface Metro est plutôt orienté vers les consommateurs privées et les entreprises en général sont plus rigides aux changements et elles ne vont pas adopter tout de suite l’environnement Metro.

Ce qui mérite aussi d’être noté est l’introduction en Windows 8 de Windows Store (équivalent à Mac App Store) comme modalité de publication des applications. Toutes les applications publiées dans Windows Store seront vérifiées et approuvées avant d’être publiées. Microsoft met à la disposition des développeurs un outil pour vérifier leurs applications avant de les publier.

Liens utiles:

*** Page web officielle de l’évènement BUILD 2011:
http://www.buildwindows.com/

*** Téléchargement Windows 8 Developer Preview with developer tools English, 64-bit (x64):
http://msdn.microsoft.com/en-us/windows/apps/br229516

*** Page principale dédiée au développement des applications de style Metro:
http://msdn.microsoft.com/en-us/windows/apps/default

2 réflexions au sujet de « WinRT, Windows 8 et le futur du .NET »

  • 14 août 2012 à 12 h 40 min
    Permalink

    Je ne suis pas d’accord avec cet article. Quand on fait de la « vrai » programmation objet en n’tiers (le standard) on sait que le HTML5 ne concerne que la couche haute de présentation et en l’occurence les Views.

    .Net est toujours requis pour les couches plus basses (DataLayer, Service Layer, MVC, MVVM, etc…)

    C’est la même chose en Java.

  • 23 août 2012 à 15 h 16 min
    Permalink

    Je suis quelque part d’accord avec vous Patrick. Néanmoins cette couche logique dont vous parlez pourrait être développée utilisant Javascript à la place de C#, car on a accès au API de WinRT. Egalement pour la couche View on pourrait utiliser Html/Css au lieu de XAML. Mais le jour où on n’utilisera plus que HTML au lieu de XAML, à mon avis est très, très loin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *