Blogs CodeS-SourceS

Blogs, blogs, blogs et encore des blogs ! Ici les développeurs vous font
partager leurs expériences, trouvailles mais également des informations funs.
Bref la vie de tous les jours des développeurs pas forcément braqués sur du code !

Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide
dans Rechercher

Aleks's Blog

Un framework pour les dominer tous

Build Windows Acte 4 - Scene 1 - Windows Runtime internals: Understanding "Hello World"

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"

Archi WinRT

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.

Publié vendredi 16 septembre 2011 16:57 par Aleks
Classé sous :
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

 

Graveen a dit :

Ok, en fait c'est un framework ni win32 ni .NET (ou pas), ou y'a quelques API de .NET (ou pas), et qui semble relativement complexe. Il va remplacer (ou pas) les chaînes de développement classiques.

J'ai bon ? :D

D

is donc Microsoft, c'est pas un peu le bordel chez toi ?!

septembre 16, 2011 22:02
 

Aleks a dit :

Oui en fait c'est un truc en plus de win32 et Framework .net.

Néanmoins, les langages c++ .net, c# et vb .net sont identiques et un certain nombre de namespaces .net ont été portés. Tu as également les même fichiers manifeste pour décrire tes dlls (tu peux les ouvrir dans ildasm, par exemple)

septembre 17, 2011 08:57
 

Graveen a dit :

Oui, je suis un peu dur sur ce coup. Je verrais bien avec la developper preview de win8 que je n'ai pas encore installé.

Je comprends aussi qu'il faut parfois tout casser pour repartir sur de bonnes bases. L'idée directrice était que c'est assez peu enthousiasmant de ne pas capitaliser totalement sur .NET.

Dans le même ordre d'idée, je trouve ridicule un nouvel OS (et pas une intégration continue comme OSX ou linux) tous les 3 ans. S'ils font pareil avec les frameworks...

septembre 17, 2011 10:19
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29

- AutoSPInstaller pour SharePoint 2013 maintenant disponible en “RTM” par Julien Chable le 05-06-2013, 23:30

- [TFS2010] A la recherche du Shelveset perdu par Blog de Jérémy Jeanson le 05-03-2013, 21:46

- .NET / Debug post-mortem : obtenir le fichier mscordacwks.dll correspondant à un dump quand on n'a plus d'accès direct à ce fichier par CoqBlog le 04-28-2013, 19:57

- [W8] Afficher un graphe par CPU dans le gestionnaire des tâches par Blog de Jérémy Jeanson le 04-28-2013, 17:48

- [WCF] Limiter proprement l’accès à vos ressources serveur par Blog de Jérémy Jeanson le 04-26-2013, 22:59

- Event : Je serai speaker à la Conf’SharePoint par Blog Technique de Romelard Fabrice le 04-26-2013, 12:00


Propulsé par Community Server (Personal Edition), par Telligent Systems
Chargement...