[Build 2012] Partage de code entre Windows Phone 8 et Windows 8

October 30, 2012 -

Un post rapide pour vous parler de cette session sur le partage de code entre Windows Phone 8 et Windows 8. Je prendrai le temps de revenir dessus dans un article plus complet une fois que j’aurai un peu plus de recule et fait quelques exemples !

sharecode

Globalement, ce qu’il faut retenir, c’est que les deux plateformes sont en train de converger, avec l’apparition de WinPRT (Windows Phone Runtime) sous Windows Phone 8 qui est un sous ensemble des APIs WinRT (Windows Runtime) de Windows 8. Concrètement, on retrouve 3 sets d’API distincts sous Windows Phone 8 :

  • Framework .NET
  • Windows Phone Runtime
  • Native API : Direct3D, XAudio2, Media Foundation

Voilà un schéma résumant ces APIs :

WP_000185

En terme de stratégie, pour favoriser le partage de code entre les deux plateformes, il faut bien évidemment séparer au maximum la logique de l’application de l’UI. Pour ça, MVVM reste le pattern à utiliser en XAML. Pour partager du code .NET entre Windows Phone et Windows, on utilisera les Portable Class Libraries. Il est également possible d’utiliser des fichiers liés (add as link) ou un composants WinRT compilé (pas possible de référencer directement le projet dans Windows Phone 8, il faut aller chercher le .winmd!)

Concernant le code qui est “platform specific”, pas de recette miracle ni grosse nouveauté, on utilise la portable class library pour créer nos interfaces et derrière on fait de l’injection de dépendances dans chaque application.

Voilà ce qu’il faut retenir de cette session à ce stade. Plus d’info sur MSDN, sur cette page.

Stay tuned Winking smile

Julien

Comments

Share

Tags


Twitter


#Azure #MediaServices RTMP Support and Live Encoders http://t.co/0gZrwH7iIz

September 19, 2014 16:28

Enabling #CDN for #Azure #Websites http://t.co/oqKExPwZc0

September 19, 2014 15:16

#MVC Application using #Owin to achieve Federated Authentication http://t.co/TAPsEfesr8

September 19, 2014 13:17

Over 100 #ASPNET #WebAPI samples http://t.co/9obzH4a9tZ

September 19, 2014 12:01

Realytics : le Google Analytics de la TV mesure l'impact online des publicités http://t.co/pAaXx8YJHI

September 19, 2014 09:54

Introducing: #Azure #MediaIndexer : http://t.co/NFqu5fQhqo

September 19, 2014 08:37

#DASH Live Streaming with #Azure #MediaService : http://t.co/jn9lyoQTGI

September 19, 2014 07:21

Scale is never a problem with #Azure #Websites : http://t.co/3BT1xeDxix

September 19, 2014 07:01

Créer une application mobile avec #Cordova/#PhoneGap, #AngularJS et #Bootstrap : http://t.co/H02XrfOCNF

September 18, 2014 16:28

#Linux and #Azure Files: you might need some help here… : http://t.co/jXoGWeIczi

September 18, 2014 15:16

New Dev Center Lifetime Registration And Benefits Program : http://t.co/4S30A0Dvw1

September 18, 2014 13:17

#WinJS 3.0 is Here: Cross-browser | Cross-platform : http://t.co/bQRw0Q8Q8P

September 18, 2014 12:01

Getting the most out of #Azure in your #MSDN subscription : http://t.co/TQpqEU81uf

September 18, 2014 09:54

Gestion des exceptions des méthodes asynchrones dans une #Windows (#Phone) App : http://t.co/xZ9SXWeYFW

September 18, 2014 08:37

Using #SignalR to power #ASPNET Dashboards : http://t.co/o7LRTXksvm

September 18, 2014 07:47