vendredi 16 septembre 2011

Windows 8 : Quid du développeur … WinRT, Win32 ou .NET ?

Après notre troisième journée //Build/ Windows 8, nous commençons a prendre un peu de recul et mieux comprendre les enjeux des dernières annonces de Microsoft… attaquons maintenant la partie développeur qui au premier coup d’œil peut nous retourner un sentiment de confusion !!

La plateforme de développement Windows 8

Effectivement, prenez le temps de regarder ce schéma et observez les deux types d’applications proposées pour Windows 8 au regard des deux modes d’affichage de Windows 8 … souvenez-vous dans mon post précédent : mode Touch “Metro” versus mode Souris “Desktop".

Et bien, nous y sommes.




















Windows 8 Platform and Tools !


Partons pour ce faire de la partie supérieure en noir :

  • Métro Style Apps : Applications type Métro (partie verte)

Celles-ci reposeront sur deux technologies d’interfaces utilisateurs que sont XAML et HTML/CSS pour respectivement exploiter en exécution de fond des langages comme le C, C++, C#, VB ou encore JavaScript !

La démarche est habile de la part de Microsoft et “OUI” vous avez le bon raisonnement, nous ne sommes plus tout à fait sur le .NET Framework mais bien un socle de développement appelé WinRT (Windows Runtime Library) que nous parcourrons ci-dessous. Je vous rassure, vos acquis ne sont pas perdus que du contraire … XAML, C#, HTML et JavaScript prenant un rôle plus qu’important !!!

Quand je dis que la démarche est habille, c’est que Microsoft vient tout simplement de nous présenter un nouvel environnement de développement spécifique à Windows 8 tout en nous annonçant que nous pourrons capitaliser sur nos connaissances historique de développeur C# ou VB en vue de non plus seulement développer des applications Desktop mais aussi des applications Metro !

Pour découvrir plus en profondeur le modèle de développement, je vous invite à parcourir le site dédié au développement d’application de style Métro : http://msdn.microsoft.com/en-us/windows/apps/default et plus encore la partie Concepts et Architecture :http://msdn.microsoft.com/en-us/library/windows/apps/br211361(v=VS.85).aspx

  • Desktop Apps : Applications traditionnelles Windows (partie bleue)

Ici, nous retrouvons notre environnement de développement bien connu avec Win32, le .NET Framework ainsi que Silverlight. Rien à redire hormis le fait que toute application tournant sur Windows 7 tournera de manière identique sur Windows 8 (prévoyez toutefois de bien valider votre application avant de la certifier conforme Windows 8 ;p).

Vous l’aurez ainsi compris, Microsoft nous propose un avenir en deux parties :

    • Applications de Consommation (gestion d’information, de données, jeux, …) avec les applications de style Métro !
      • WP7, Windows 8 / Metro
    • Applications de Création (création de contenu, données, …) avec les applications de style Desktop !

Et de ce fait enclenche doucement une migration en douceur entre les plateformes historiques “Win32 et .NET Fx (y compris SL)” vers HTML ou XAML sur un WinRT … mais justement, qu’est-ce que ce fameux WinRT ? …

Qu’est que WinRT APIs ?

Pour ce faire, je vous invite à parcourir l’excellent post de Miguel de Icaza, en anglais, qui démystifie WinRT :http://tirania.org/blog/archive/2011/Sep-15.html

Voici en résumé (en français) des informations importantes à retenir autour de WinRT et la stratégie attachée à celui-ci !!!

  • Microsoft profite du lancement du lancement de Windows 8 pour corriger des problèmes historiques avec Windows en apportant une nouvelle interface utilisateur digne d’une compétition dure sur le monde des tablettes et slates !
  • Microsoft apporte un modèle de sécurité pour son futur Windows AppStore
  • WinRT est un ensemble d’APIs :
    • Permettant d’implémenter le design Metro
    • A un modèle de programmation simple pour développeurs Windows
    • Exploitant XAML ou HTML / CSS en UI
    • Avec ses APIs qui sont toutes conçues pour être asynchrones
    • Conçues pour créer des applications Windows Store
    • Est basé sur le format ECMA 335 (idem que .NET)

WinRT intègre ainsi le nouveau système d’interface ainsi que les anciennes APIs Win32 !

D’autres notions importantes sont également parcourues par Miguel comme :

  • la notion de “Projection” qui est le processus d’exposition des API pour ces 3 environnements : C, C++, HTML/JS et .NET (C# / VB)
  • la notion d’asynchrone pour toute API automatique pour toute exécution excédant 50 millisecondes
    • ceci en vue de garantir le bon fonctionnement des applications du Windows Store Metro et privilégier l’expérience utilisateur !
  • la notion de .NET or not .NET … ? Effectivement des APIs ont été déplacées vers WinRT comme File I/O ou encore Sockets.

En conclusion ?

En clair, Microsoft nous apporte un troisième socle applicatif avec WinRT en plus de Win32 et .NET. Tout a été fait pour rendre son exploitation et sa compréhension le plus simple possible… sa prise en main est plus que naturelle pour tout développeur .NET … et tout ceci en vue de vous permettre de profiter du Windows Store et de la plateforme de distribution (commercialisation) de vos applications !

Pour rappel… le Windows Store héritera du cumul de volume utilisateurs de Windows et Windows Live ID … en gros, proche d’une volumétrie digne de Facebook !

Source : Redo Blog au 16/09/2011

Aucun commentaire: