Le Windows Runtime fait vraiment le Buzz dans cette édition du Build. Beaucoup d'inconnues existent concernant ce composant et j'ai pu participer à pas mal de discussion au sein de la communauté de développeurs francophone.
- Qu'elle est le lien avec le Framework .NET ?
- Peut-on utiliser les DLL .NET ?
- Qu'est-ce qui change pour les développeurs .NET ?
Autant de question dont on espère avoir des réponses aujourd'hui.
Pas à pas sur le cycle de vie d'un projet "Hello World"

La vie d'une application Windows Runtime et Metro c'est (grosse maille) :
- Installation
- Touch (lancement)
- Exécution
Installation
- Le projet d'application WinRT possède un fichier manifest (XML) qui décrit l'application.
- Lors de l'installation, toutes les informations sur l'application sont enregistrées dans la base de registre
- La classe d'entrer de votre application (la seule connue par Windows 8)
- Le type d'activation (In-process ou out of process)
- L'application qui va exécuter votre application (wwahost.exe pour les applications html 5, par exemple)




Exécution
Lors du lancement de l'application, l'explorer parcourt toutes les clés de registre liées à l'application.
- Création d'un extention Catalog
- Création d'un Extension Registration et activation (lancement de l'application)
En arrière plan, Explorer va utiliser un composant nommé RPCSS qui lui même va utiliser un composant nommé DCOM Launch. C'est ce dernier qui lance réellement l'exécutable.
C'est un peu compliqué d'expliquer tout ça en live, mais ce qu'il faut retenir c'est que toutes les informations nécessaires à l'exécution de votre application est dans la base de registre et que le trio Explorer, RPCSS et DCOM Launch est en charge du lancement de votre application.
Deep dive dans le Windows Runtime
- Tous les composants de Windows Runtime sont référencées dans la base de registre (sous Current machine).
- Lors du lancement d'une application, les premières étapes vont charger les composants nécessaires à l'application à l'aide d'un ActivationID unique par composant.
- Lors des premiers moment de vie de l'application, on peut retrouver l'appel à des fonctions tel que QueryInterface, AddRef, Release ... souvenir souvenir.
Remarquez quand même comme tout ces processes ressemble étrangement au fonctionnement des objets COM ... Bonne nouvelle ou mauvaise nouvelle ?
En tout cas, ce qui est sur, c'est qu'on n'a pas besoin de connaitre tout ça pour faire des applications sous WinRT.