Bon, faut pas se voiler la face, y’a encore à ce jour pas mal de Windows Phone 7.x en service qu’il ne faut pas oublier. Et vous êtes peut être comme moi très attiré par les caractéristiques que nous offre les Windows Phone 8. Mais voilà, comment bien gérer mon application sans faire du double code ?
Je vous partage ici une solution que m’a expliqué David Poulin dernièrement.
Outil nécessaire
Il faut d’abord installer une extension pour votre Visual Studio 2012 qui se nomme « Project Linker 2012 »
Que vous installerez via le menu [OUTILS] puis [EXTENSIONS ET MISE A JOURS] PS: Oui, je suis français, je parle français et je mets mes logiciels en .. français.
Ici le lien http://visualstudiogallery.msdn.microsoft.com/273dbf44-55a1-4ac6-a1f3-0b9741587b9a
Ajout d’un projet Windows Phone 8
Afin d’avoir une solution « propre » je renomme mon projet existant PhoneAppli en PhoneAppli7. Pensez juste après à aller dans les propriétés de ce projet pour vérifier l' »Objet de démarrage » et regardez si vos Nom d’assembly et/ou espace de nom de change pas.
Maintenant un clic droit sur la solution et [AJOUTER] [NOUVEAU PROJET…]
Et nous voilà maintenant avec nos deux jolis projets:
Namespace
La première chose que je fais dans mon projet Windows Phone 8.0 est de mettre le même Namespace :
Flag de compilation
Il faut maintenant penser à rajouter un flag de précompilation pour le projet Windows Phone 8.0 « WP8 »:
#if WP8 //code spécifique Windows Phone 8 #else //code spécifique Windows Phone 7.x #end if
Liaisons avec mon projet initial
Il faut maintenant que je relie mon projet WP8 à mon projet WP7.x en faisant un clic droit sur le projet [PhoneAppli8] puis [Add project link..]
Et de choisir le projet initial :
A ce moment là, Project Linker, crée automatiquement toutes les liaisons dans mon projet PhoneAppli8. Par la suite lorsque vous supprimerez ou ajouterez un élément du projet initial, il sera supprimé ou ajouté du projet PhoneAppli8. Cela fonctionne heureusement que dans un sens car si vous ajoutez par exemple une classe dans le projet WP8, elle y sera que pour ce projet.
Ajout des liaisons sans utiliser « Project Linker »
Vous pouvez ajouter vos Assets, Class, Models, View, Pages… existantes manuellement sans utiliser l’extension Project Linker en « liaison » en faisant un clic droit sur le projet PhoneAppli8, [Ajouter] [ELEMENT EXISTANT]. Vous sélectionnez le ou les éléments et veillez à sélectionnez « [Ajouter en tant que lien] » :
Et pour aller plus vite, sélectionner l’élément que vous aller déplacer en appuyez sur la touche ALT et faite un glisser-déposer dans le projet PhoneAppli8.
Vous remarquerez que l’icone de l’élément ajouté se distingue par un petit symbole supplémentaire. J’ai remarqué aussi que la modification d’un XAML se fait du projet initial et pas du second.
Références
Les références ne sont bien évidement pas reliées ; Certaines spécifiées sont propres à Windows Phone 8, il faut donc les rajouter soi-même.
Autre chose, personnellement, je n’ai pas relié l’App.xaml.
Ceci n’est qu’une méthode.. il y en a surement d’autre… 😉
Je fais la même chose, et ca marche nickel !
Je pense que tu aurais aussi du parler du regroupement des fichiers xaml et xaml.cs qui est un problème qu’on rencontre dès qu’on ajoute en tant que lien des pages xaml 😉
http://spasol.wordpress.com/2013/03/04/grouping-xaml-and-code-behind-file-in-visual-studio/