mardi 7 août 2012

Windows Phone 8: les nouveaux templates de projets

Cibler Windows Phone 8

Le SDK de Windows Phone 8 vous apporte tout le nécessaire pour développer des applications à la fois pour Windows Phone 7.1 et pour Windows Phone 8. En effet, lors de la création d'un nouveau projet une boite de dialogue vous permet de choisir la plateforme que vous souhaitez cibler.


Si vous avez déjà un projet pour Windows Phone 7.1, Visual Studio vous permet facilement de le convertir en projet Windows Phone 8:
- soit en faisant un clic droit sur le projet dans l'explorateur de solution et en choisissant la commande Upgrade to Windows Phone 8.0 du menu contextuel.


- soit en modifiant la plateforme cible dans la fenêtre des propriétés du projet.

Des templates Visual Basic, C# et C++

Dans les langages C# et Visual Basic nous retrouvons des templates déjà présents dans le SDK Windows Phone 7.1: Windows Phone App, Windows Phone Databound App, Windows Phone Class Library, Windows Phone Panorama App, Windows Phone Pivot App, Windows Phone XAML and XNA App, Windows Phone Audio Playback Agent, Windows Phone Audio Streaming Agent et Windows Phone Scheduled Task Agent.
Les nouveaux templates propre à Windows Phone 8 sont Windows Phone XAML and Direct3D App et Windows Phone HTML5 App.


Le template Windows Phone Direct3D XAML Application est dédié à la création d'applications managées faisant appel à du code interop. Voici le contenu par défaut du template (avec le projet principal en XAML/C# et une librairie C++).


Le model d'application est similaire à la version précédente de Windows Phone avec une navigation basée sur des pages (PhoneApplicationPage ) et un développement en XAML/C# (ou Visual Basic).
Une des caractéristiques de ce type de projet est l'utilisation du controle DrawingSurface qui permet le rendu de contenu Direct3D (DirectX) au sein de l'application. Ce contrôle rappelle celui introduit avec Silverlight 5 pour la gestion de rendu 3D.
Il s'agit d'un contrôle XAML que l'on déclare au sein d'une page:
<Grid x:Name="LayoutRoot" Background="Transparent" 
        MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown"
        MouseLeftButtonUp="LayoutRoot_MouseLeftButtonUp"
        MouseMove="LayoutRoot_MouseMove">
    <DrawingSurface x:Name="DrawingSurface" />
</Grid>
La méthode SetContentProvider définit l'objet responsable des opérations de dessin sur le contrôle DrawingSurface. C'est cet objet qui sera développé en code C++.
private Direct3DInterop m_d3dInterop = new Direct3DInterop();
// Constructor
public MainPage()
{
    InitializeComponent();
    DrawingSurface.SetContentProvider(m_d3dInterop.CreateContentProvider());
}
Le template propose par défaut le dessin d'un cube en 3D qui tourne sur lui-même.


Le template  Windows Phone HTML5 App permet de créer un projet dont le contenu principal est du HTML. Mais ne vous méprenez-pas, il ne s'agit pas ici d'un projet entièrement en HTML5/CSS/javascript comme on peut en trouver en développant pour Windows 8.


Le contenu HTML/CSS est en fait affiché via un contrôle WebBrowser:


Le C# et Visual Basic ne sont plus les seuls langages supportés par la plateforme. Le C++ fait maintenant son entrée et quatre templates sont proposés par défaut:
  • Windows Phone Direct3D with XAML App pour créer des applications basées sur Direct3D et XAML.
  • Windows Phone Direct3D App (Native Only) pour créer des applications basées sur Direct3D.  
  • Windows Phone Runtime Component pour créer un composant WinPRT (Windows Phone Runtime).
  • Empty Dynamic Link Library pour créer une bibliothèque de liens dynamiques.
  • Empty Static Library pour créer une bibliothèque statique.


Le projet Windows Phone Direct3D App permet de créer des applications DirectX dont le modèle d’application est sensiblement le même que pour le template Direct3D de Windows 8 (application de style Metro).
Les concepts de pages et de navigation sont absents. Aucun contrôle n’est fourni, tout doit être “dessiné” soit même au sein d’une boucle Run. Ce type de projet sera essentiellement utilisé pour les jeux ayant besoin de performances les plus élevées possibles et rendra le portage d’applications entre plateformes plus facile (ex: un jeu C++ sur Android vers Windows Phone 8).

Un large choix d’émulateurs

Sur un projet ciblant Windows Phone 7.1 vous avez la possibilité de tester l'application sur les émulateurs Windows Phone 7.1 (Emulator 7.1 et Emulator 7.1 256MB) et Windows Phone 8 (Emulator WVGA, Emulator WXGA, Emulator WXGA 512MB et Emulator 720P).


Sur un projet Windows Phone 8, seuls les émulateurs associés à cette plateforme sont proposés.



Rien ne vous empêche de lancer les émulateurs Windows Phone 7.1 et 8 à la fois pour vérifier le comportement de votre application sur les deux plateformes en même temps.


L’installation de l’émulateur pour Windows Phone 8 nécessite quelques manipulations que vous pouvez retrouver dans le post SDK Windows Phone 8: activation d'Hyper-V.

Aucun commentaire:

Enregistrer un commentaire