Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[Certaines informations concernent la version préliminaire de produits susceptibles d’être considérablement modifiés d’ici leur commercialisation. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.]
Si vous disposez d’une application 8.1 universelle—qu’elle cible Windows 8.1, Windows Phone 8.1 ou les deux—, vous constaterez que le portage de votre code source et de vos compétences vers Windows 10 s’effectue en toute transparence. Grâce à Windows 10, vous pouvez créer une application de plateforme Windows universelle (UWP), à savoir un package d’application unique que vos clients peuvent installer sur tout type d’appareil.Consultez le Guide des applications UWP pour en savoir plus sur Windows 10, les applications UWP et les concepts de code adaptatif et d’interface utilisateur adaptative que nous mentionnerons dans ce guide de portage.
Pendant le portage, vous constaterez que Windows 10 partage la majorité des API avec les plateformes précédentes, ainsi que le balisage XAML, l’infrastructure d’interface utilisateur et des outils, et qu’elles sont toutes très conviviales. Comme précédemment, vous avez toujours le choix entre les langages de programmation C++, C# et Visual Basic pour l’infrastructure d’interface utilisateur XAML. Les premières étapes de planification de ce que vous devez faire avec vos applications existantes dépendent des types d’applications et de projets dont vous disposez. Cela est expliqué dans les sections suivantes.
Si vous disposez d’une application 8.1 universelle
Une application 8.1 universelle est créée à partir d’un projet d’application universelle 8.1. Supposons que le nom du projet est AppName_81. Il contient les sous-projets suivants.
- AppName_81.Windows. Il s’agit du projet qui crée le package d’application pour Windows 8.1.
- AppName_81.WindowsPhone. Il s’agit du projet qui crée le package d’application pour Windows Phone 8.1.
- AppName_81.Shared. Il s’agit du projet qui contient le code source, les fichiers de balisage et d’autres actifs et ressources qui sont utilisés par les deux autres projets.
Une application Windows universelle 8.1 offre souvent les mêmes fonctionnalités—en utilisant les mêmes code et balisage— dans ses versions pour Windows 8.1 et Windows Phone 8.1. Une telle application est le candidat idéal au portage vers une application Windows 10 unique qui cible la famille d’appareils universels (et que vous pouvez installer sur le plus large éventail d’appareils). Vous porterez essentiellement le contenu du projet partagé et vous n’utiliserez que très peu, voire pas du tout, les deux autres projets, car ils ne contiendront qu’un nombre limité d’éléments, voire aucun.
Dans d’autres cas, la version pour Windows 8.1 et/ou pour Windows Phone 8.1 de l’application contient des fonctionnalités uniques. Elles peuvent également contenir les mêmes fonctionnalités mais les implémenter selon des techniques ou des technologies différentes. Avec une telle application, vous pouvez choisir d’effectuer le portage vers une application unique qui cible la famille d’appareils universelle (auquel cas vous souhaiterez adapter l’application aux différents appareils) ou vers plusieurs applications, une ciblant la famille d’appareils de bureau et une autre ciblant la famille d’appareils mobiles par exemple. La nature de l’application 8.1 universelle détermine l’option convenant le mieux à votre cas.
- Portez le contenu du projet partagé vers une application ciblant la famille d’appareils universelle. Le cas échéant, récupérez tout autre contenu des projets Windows et WindowsPhone et utilisez ce contenu de manière inconditionnelle dans l’application ou conditionnelle sur le périphérique sur lequel votre application est exécutée (ce comportement est dit adaptatif).
- Portez le contenu du projet WindowsPhone vers une application ciblant la famille de périphériques universels. Le cas échéant, récupérez tout autre contenu du projet Windows, en l’utilisant de manière inconditionnelle ou adaptative.
- Portez le contenu du projet Windows vers une application ciblant la famille de périphériques universels. Le cas échéant, récupérez tout autre contenu du projet WindowsPhone, en l’utilisant de manière inconditionnelle ou adaptative.
- Portez le contenu du projet Windows vers une application ciblant la famille de périphériques de bureau ou universels et portez également le contenu du projet WindowsPhone vers une application ciblant la famille de périphériques universels ou mobiles. Vous pouvez créer une solution avec un projet Shared et continuer à partager le code source, les fichiers de balisage et d’autres actifs et ressources entre les deux projets. Vous pouvez également créer différentes solutions et partager les mêmes éléments à l’aide de liens.
Si vous disposez d’une application Windows 8.1
Portez le projet vers une application ciblant la famille de périphériques universels ou de bureau. Si vous choisissez la famille de périphériques universels et que votre application appelle des API qui ne sont implémentées que dans la famille de périphériques de bureau, vous pouvez protéger ces appels avec du code adaptatif.
Si vous disposez d’une application Windows Phone 8.1
Portez le projet vers une application ciblant la famille de périphériques universels ou mobiles. Si vous choisissez la famille de périphériques universels et que votre application appelle des API qui ne sont implémentées que dans la famille de périphériques mobiles, vous pouvez protéger ces appels avec du code adaptatif.
Adaptation de votre application à plusieurs facteurs de forme
L’option que vous choisissez dans les sections précédentes détermine la gamme de périphériques sur laquelle vos applications seront exécutées, ce qui peut représenter un très large éventail de périphériques. Même si vous limitez votre application à la famille de périphériques mobiles, vous disposez toujours d’un large éventail de tailles d’écran à prendre en charge. Par conséquent, si votre application doit être exécutée sur des facteurs de forme qu’elle ne prenait pas en charge auparavant, testez votre interface utilisateur sur ces facteurs de forme et apportez les modifications nécessaires pour qu’elle s’adapte à chacun d’entre eux de manière appropriée. Vous pouvez considérer qu’il s’agit d’une tâche de post-portage, ou d’un redimensionnement du portage, et vous en trouverez quelques exemples pratiques dans les études de cas Bookstore2 et QuizGame.
Méthode de portage couche par couche
Lors du portage d’une application 8.1 universelle vers le modèle d’application UWP, quasiment toutes vos expériences et connaissances sont transférées, tout comme la majeure partie de votre code source, du balisage et des modèles de logiciels que vous utilisez.
- Affichage. L’affichage (ainsi que le modèle d’affichage) constitue l’interface utilisateur de votre application. Dans l’idéal, l’affichage se compose de balises liées aux propriétés observables d’un modèle d’affichage. Une autre méthode (courante et pratique, mais uniquement sur le court terme) consiste à faire en sorte que le code impératif d’un fichier code-behind manipule directement des éléments de l’interface utilisateur. Dans les deux cas, votre balisage d’interface utilisateur et votre conception—(voire du code impératif qui manipule les éléments de l’interface utilisateur)—sera simple à porter.
- Modèles d’affichage et modèles de données. Même si vous n’adoptez pas pleinement les modèles avec séparation des responsabilités (comme MVVM), il existe inévitablement du code dans votre application, qui joue le rôle de modèle d’affichage et de modèle de données. Le code du modèle d’affichage utilise des types dans les espaces de noms de l’infrastructure de l’interface utilisateur. Le modèle de données et le modèle d’affichage exploitent également un système d’exploitation non visuel, ainsi que des API .NET Framework (y compris les API d’accès aux données). Ces API sont également disponibles pour les applications UWP de sorte que la majeure partie de ce code, si ce n’est l’intégralité, pourra être portée sans modification.
- Services de cloud computing. Il est probable que certains éléments de votre application (peut-être la plus grande partie) s’exécutent sur le cloud, sous la forme de services. La partie de l’application qui s’exécute sur l’appareil du client se connecte à ces services. Il s’agit de la partie d’une application distribuée qui a de grandes chances de rester intacte lors du portage de la partie destinée au client. Si vous n’avez pas encore envisagé cette possibilité, nous vous recommandons d’opter pour des services de cloud computing pour votre application UWP. Ainsi, Microsoft Azure Mobile Services propose des composants principaux puissants et efficaces que votre application peut appeler pour bénéficier de services allant de la simple notification de mise à jour des vignettes dynamiques aux différentes fonctions d’évolutivité ultra-puissantes offertes par une batterie de serveurs.
Avant ou pendant le portage, vérifiez si vous pouvez améliorer votre application en la refactorisant, afin de regrouper l’ensemble du code présentent un objectif similaire sous la forme de couches, ce qui vous permet d’éviter toute répartition arbitraire. La factorisation de votre application en couches comme celles que nous venons de décrire vous permet de vous assurer que votre application est correcte, de la tester, de l’exécuter et de l’entretenir, en toute simplicité. Vous pouvez rendre des fonctionnalités plus réutilisables en suivant le modèle Model-View-ViewModel (MVVM). Ce modèle gère de manière séparée les éléments de l’interface utilisateur, les composants professionnels et les données. Même au sein de l’interface utilisateur, ce modèle peut séparer les états et les comportements des éléments visuels, qui seront testés séparément. Grâce au modèle MVVM, vous pouvez écrire vos données et votre logique métier une seule fois et l’utiliser sur tous les appareils, quelle que soit l’interface utilisateur. En outre, ce modèle vous permettra probablement de réutiliser la majeure partie du modèle d’affichage et des zones d’affichage sur l’ensemble des appareils.
Dans cette section
Rubrique | Description |
---|---|
Lorsque vous commencez le processus de portage, vous avez le choix entre deux options. La première consiste à modifier une copie de vos fichiers de projet existants, y compris le manifeste de package d’application (pour cette option, voir les informations sur la mise à jour de vos fichiers de projet dans Développer des applications pour la plateforme Windows universelle). La seconde consiste à créer un projet Windows 10 dans Visual Studio et à copier vos fichiers dans ce projet. |
|
Nous vous recommandons vivement de lire ce guide de portage jusqu’à la fin, mais nous comprenons également que vous soyez impatient d’avancer et de passer à l’étape de développement et d’exécution de votre projet. À cette fin, vous pouvez avancer provisoirement en commentant ou en remplaçant du code non essentiel, pour revenir ensuite afin de combler cette lacune ultérieurement. Le tableau de résolution des problèmes et des solutions de cette rubrique peuvent vous être utiles à ce stade, même s’il ne se substitue pas à la lecture des rubriques suivantes. Vous pouvez toujours revenir au tableau lorsque vous avancez dans les rubriques ultérieures. |
|
Portage du balisage XAML et de la couche interface utilisateur |
La pratique de définition de l’interface utilisateur sous la forme de balisage XAML déclaratif convertit extrêmement bien des applications 8.1 universelles aux applications de plateforme Windows universelle (UWP). Vous constaterez que la majeure partie de votre balisage est compatible, même si vous devrez peut-être apporter quelques ajustements aux clés de ressources système ou aux modèles personnalisés que vous utilisez. |
Le code qui s’intègre à l’appareil proprement dit et à ses capteurs implique l’entrée de l’utilisateur et la sortie vers ce dernier. Il peut également impliquer le traitement des données. Néanmoins, ce code n’est généralement pas pensé comme la couche interface utilisateur ni comme la couche de données. Ce code inclut l’intégration au contrôleur de vibrations, à l’accéléromètre, au gyroscope, au microphone et au haut-parleur (qui rejoignent la reconnaissance et la synthèse vocales), à la (géo)localisation et aux modalités d’entrée telles que l’écran tactile, la souris, le clavier et le stylet. |
|
Cette rubrique présente une étude de cas de portage d’une application 8.1 universelle très simple vers une application de plateforme Windows universelle (UWP) Windows 10. Une application 8.1 universelle génère un package d’application pour Windows 8.1 et un autre pour Windows Phone 8.1. Grâce à Windows 10, vous pouvez créer un package d’application unique que vos clients peuvent installer sur un large éventail d’appareils. C’est ce que nous allons faire dans la présente étude de cas. Voir Guide des applications UWP. |
|
Cette étude de cas—qui repose sur les informations fournies dans Bookstore1—commence par une application 8.1 universelle qui affiche des données groupées dans un contrôle SemanticZoom. Dans le modèle d’affichage, chaque instance de la classe Author représente l’ensemble des livres écrits par l’auteur en question ; dans l’élément SemanticZoom, nous pouvons afficher la liste des livres regroupés par auteur ou nous pouvons effectuer un zoom arrière pour afficher une liste de raccourcis relatifs aux auteurs. |
|
Cette rubrique présente une étude de cas illustrant le portage d’un exemple d’application de jeu-questionnaire WinRT 8.1 d’homologue à homologue vers une application de plateforme Windows universelle (UWP) Windows 10. |
Rubriques associées
Documentation
Informations de référence sur Windows Runtime
Création d’applications Windows universelles pour tous les périphériques Windows