Accueil Nos publications Blog Utiliser Visual Studio pour développer des XAML universal apps

Utiliser Visual Studio pour développer des XAML universal apps

BkSStxdIMAAQAmPSession originale : Using Visual Studio to build XAML universal apps

Cette session parle de la convergence des applications Windows 8.1 et Windows Phone 8.1, notamment au travers de l’outil de prédilection des développeurs : Visual Studio.

Universal Apps, qu’est-ce que c’est ?

Les Universal Apps supportent C#, C++ et Javascript, accompagnés de leurs chouchous respectifs pour l’interface : XAML et HTML/CSS.

Différents moyens pour créer un projet universel :

  • Depuis zéro en partant d’un project template
  • Migration de Windows 8.1 ou WP 8 .1 vers des Universal Apps

Les templates de projet Visual Studio sont maintenant bien séparés en :

  • Universal Apps
  • Windows Apps
  • Windows Phone Apps

Démo : création d’un nouveau projet universal

Lorsqu’on choisit de créer une nouvelle solution de type Universal Apps, 3 projets sont créés :

  • *.Windows : projet spécifique à Windows 8.1
  • *.WindowsPhone : projet spécifique à Windows Phone 8.1 (Silverlight)
  • *.Shared : composants partagés entre Windows et Phone 8.1

Le projet Shared supporte tous les types de fichier habituels d’un projet XAML. : page XAML, user control, resource dictionary, resource file, etc.

Pour partager quoi ? UserControls, DataTemplates, Styles, UI, ViewModels… une partie de ce qu’on partageait avec une Portable Class Library avec en bonus tout ce qui touche à XAML et WinRT !

A noter que le projet Shared est référencé par chaque projet W8.1 ou WP8.1 mais ne génère aucune DLL. Il est en fait compilé 2 fois : une fois dans le contexte Windows 8.1, une autre fois dans le contexte Windows Phone 8.1.

WP_20140402_14_33_00_Pro

Démo : migration d’un projet Windows 8.1 existant

La démo montre comment déplacer le contenu partageable d’un projet W8.1 vers le projet Shared, pour ensuite le réutiliser dans WP 8.1.

Quelques exemples d’éléments partageables :

  • NavigationHelper : principes de navigation unifiés, plus simple à partager
  • SuspensionManager : cycle de vie d’une app identique, donc partageable
  • Images / Strings, etc.

Symboles de compilation

Nouveau symbole de combilation pour les universal apps : WINDOWS_APP / WINDOWS_PHONE_APP.

#if WINDOWS_APP
#endif

Startup project

Nouveau raccourci pour lancer un projet depuis le menu déroulant de debug :

Menu Debug > Local Machine > Startup project > démarrer Windows Phone ou Windows 8.

WP_20140402_14_48_12_Pro

Intellisense

L’intellisense prévient avec une icône en forme de warning si une API est spécifique à une plateforme.

Contexte d’un fichier shared

Chaque fichier du projet Shared a un contexte Windows Phone et Windows 8, ce qui équivaut à 1 fichier compilé pour 2 targets différentes (W8.1 et WP8.1).

Lorsqu’on ouvre un fichier XAML, il est très simple de basculer du contexte Windows au contexte Phone, via un simple menu déroulant.

WP_20140402_14_53_45_Pro

Navigation bar en XAML

Nouveau menu pour naviguer directement vers un élément graphique de l’arborescence, ou une propriété d’un élément.

Blend for Visual Studio

  • Blend supporte également les Universal Apps ! Seule différence : pour changer de contexte d’application, il faut aller dans le menu Device. Il n’y a pas de menu déroulant raccourci comme sous Visual studio.
  • Support des guides qu’on peut également exporter dans un fichier.

Réutilisation de code

Shared project vs Portable Class Library

Toutes les Class Library sont maintenant des Portable Class Library, semble-t-il. Les PCL sont d’ailleurs compatibles avec WinRT si on coche uniquement Win8.1 et WP8.1.

A noter que côté Shared Project, on ne peut référencer aucune DLL. Pour référencer une DLL quelconque, il faut le faire dans les projets “hôtes”, à savoir Win8.1 et WP8.1, et non le Shared. Un peu déroutant au début …

Par exemple, pour référencer MVVM Light Toolkit et l’utiliser dans le Shared, il faut ajouter la référence aux projets Windows 8.1 et Windows Phone 8.1.

Preview XAML

Preview du design pour toutes les résolutions depuis le panel Device.

La couleur d’accentuation peut être modifiée en live également, le thème, etc.

WP_20140402_15_10_28_ProEn résumé

  • Visual Studio 2013 Update 2 évolue et nous propose une expérience nouvelle pour les Universal Apps
  • Les nouveaux projets Shared permettent de partager du XAML et du WinRT entre Win8.1 et WP8.1
  • On peut facilement basculer de contexte entre Windows et Phone
  • Les PCL sont toujours là, bien que les Shared Projects soient privilégiés dans les scénarios Windows 8.1 et Windows Phone 8.1