Le Post Infeeny

Les articles des consultants et experts Infeeny

.Net developer view of Windows 8 apps

Message de Guillaume Leborgne

Une session tres tres interessante, a regarder en webcast !!!

 Quelques precisions pour commencer :

Les applications Metro en C# / XAML utilisent la CLR 4.5 avec un petit subset de l’api .Net

WinRT est une librairie en code natif, reposant sur DCOM, et expose en .Net, qui permet de manipuler les elements systeme.

 Les types manipules dans une application metro peuvent donc avoir plusieurs origins :

WinRT

Managed (Tuple, List, XDocument, …)

Mapped (Int32, string, IEnumerable)

Interop (IBuffer, IASync, …)

Les applications metro utilisent un profil CLR particulier optimise pour la typologie d’application. Un profil CLR est un jeu d’assembly de reference qui permettent de definer les parties de .Net qui sont accessibles dans une application.

Par exemple, le profil des applications metro s’appelle « .Net Core », et il est visible dans le repertoire (dans windows 8) Program files (x86)/Reference assemblies/Microsoft/framework

Dans ce profil, certaines choses ont ete supprimees : les API aui n’avaient pas de sens (par ex ASP.Net) , Les choses dangereuse ou obsoletes ,les choses dupliquees avec WinRT, les wrappers sur certaines fonctionnalites de l’OS (EventLog, PerfCounters, …)

Par ailleurs, certains elements sont presents mais ont ete refactore

 A titre d’exemple : 

metro comporte  15 assemblies, 60 namespaces, et 1000 types

WP7   comporte  22 assemblies, 88 namespaces, et 2000 types

.Net    comporte 120 assemblies, 400 namespaces, et 14000 types

 En d’autres termes, le code .Net d’une application metro n’est pas 100% compatible avec du code « standard », le portage reste cependant tres simple. Microsoft va mettre en ligne un guide pour expliquer le portage des API.

 En parallele, il est possible de faire des projets de type « Portable Library », qui sont compatibles sur tous les environnements .Net (WP7, Silverlight, Metro, XBox, …).

Dans metro on a acces a la BCL (c’est la partie qui a le moins change), a une stack Http specifique, la Serialization (avec un gros lifting), Linq 2 XML, MEF, la partie cliente de WCF, la reflection (mais pas sur les types prives et avec quelques amenagements).

 Les namespaces suivants ne sont pas accessibles :Data, Web, Remoting, Reflection.Emit, AppDomains
Certaines parties ont ete remplacees : System.Windows (WPF), Isolated Storage, Resources, Sockets, WebClient
Les parties qui ont ete modifies sont les suivantes : Serialization, Reflection, XML, Collections, Threading

 A+

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :