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

- Etendre le Team Web Access de TFS 2012 – Step 0 par Philippe Didiergeorges Aka Philess le il y a 15 heures et 20 minutes

- Simuler facilement l’envoi de mail par Blog de Jérémy Jeanson le 05-22-2013, 12:52

- ProcDump 6.0 : support du filtrage sur messages d'exceptions .NET, des filtres multiples et du ciblage par nom de service par CoqBlog le 05-20-2013, 14:50

- Votez pour le TOP 10 des influenceurs SharePoint francophones ! par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 12:59

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:09

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:03

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 08:27

- 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


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