Passer de Windows Runtime 8.x à UWP
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 votre code source et vos compétences seront transférés en douceur vers Windows 10. Avec Windows 10, vous pouvez créer une application plateforme Windows universelle (UWP), qui est un package d’application unique que vos clients peuvent installer sur chaque type d’appareil. Pour plus d’informations sur Windows 10, les applications UWP et les concepts du code adaptatif et de l’interface utilisateur adaptative que nous mentionnerons dans ce guide de portage, consultez Guide des applications UWP.
Lors du 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 les outils, et vous le trouverez familier. Tout comme avant, vous pouvez toujours choisir entre C++, C# et Visual Basic pour le langage de programmation à utiliser avec l’infrastructure d’interface utilisateur XAML. Vos premières étapes de planification exacte de ce qu’il faut faire avec votre application ou vos applications actuelles 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 universelle 8.1
Une application universelle 8.1 est générée à partir d’un projet d’application universelle 8.1. Supposons que le nom du projet soit AppName_81. Il contient ces sous-projets.
- AppName_81.Windows. Il s’agit du projet qui génère le package d’application pour Windows 8.1.
- AppName_81.WindowsPhone. Il s’agit du projet qui génère le package d’application pour Windows Phone 8.1.
- AppName_81.Shared. Il s’agit du projet qui contient du code source, des fichiers de balisage et d’autres ressources et ressources utilisés par les deux autres projets.
Souvent, une application Windows universelle 8.1 offre les mêmes fonctionnalités et utilise le même code et le même balisage dans ses formulaires Windows 8.1 et Windows Phone 8.1. Une application comme celle-ci est un candidat idéal pour le portage vers une application Windows 10 unique qui cible la famille d’appareils universelles (et que vous pouvez installer sur la plus large gamme d’appareils). Vous allez essentiellement porter le contenu du projet partagé et vous devez utiliser peu ou rien des deux autres projets, car il y aura peu ou rien dans eux.
D’autres fois, windows 8.1 et/ou la forme Windows Phone 8.1 de l’application contiennent des fonctionnalités uniques. Ou ils contiennent les mêmes fonctionnalités, mais ils implémentent ces fonctionnalités à l’aide de différentes techniques ou d’une technologie différente. Avec une application comme celle-ci, vous pouvez choisir de la porter vers une application unique qui cible la famille d’appareils universels (auquel cas vous souhaiterez que l’application s’adapte à différents appareils), ou vous pouvez choisir de la porter en tant que plusieurs applications, peut-être une ciblant la famille d’appareils de bureau et une autre ciblant la famille d’appareils mobiles. La nature de l’application Universal 8.1 détermine laquelle de ces options est la meilleure pour votre cas.
- Porter le contenu du projet partagé vers une application ciblant la famille d’appareils universels. Le cas échéant, récupérez tout autre contenu des projets Windows et WindowsPhone, puis utilisez ce contenu sans condition dans l’application ou conditionnel sur l’appareil sur lequel votre application s’exécute à l’heure (ce dernier comportement est appelé adaptatif).
- Porter le contenu du projet WindowsPhone vers une application ciblant la famille d’appareils universels. Le cas échéant, récupérez tout autre contenu du projet Windows, en l’utilisant de manière inconditionnelle ou adaptative.
- Porter le contenu du projet Windows vers une application ciblant la famille d’appareils 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 d’appareils universels ou de bureau, ainsi que le contenu du projet WindowsPhone vers une application ciblant la famille d’appareils universels ou mobiles. Vous pouvez créer une solution avec un projet partagé et continuer à partager du code source, des fichiers de balisage et d’autres ressources 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 avez une application Windows 8.1
Porter le projet vers une application ciblant la famille d’appareils universels ou de bureau. Si vous choisissez la famille d’appareils universelle et que votre application appelle des API implémentées uniquement dans la famille d’appareils de bureau, vous pouvez protéger ces appels avec du code adaptatif.
Si vous avez une application Windows Phone 8.1
Porter le projet vers une application ciblant la famille d’appareils universels ou mobiles. Si vous choisissez la famille d’appareils universels et que votre application appelle des API implémentées uniquement dans la famille d’appareils 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 plage d’appareils sur lesquels votre application ou vos applications s’exécutent, et cela peut bien être un très large éventail d’appareils. Même la limitation de votre application à la famille d’appareils mobiles vous laisse toujours avec un large éventail de tailles d’écran à prendre en charge. Par conséquent, si votre application s’exécute sur des facteurs de forme qu’elle n’a pas précédemment pris en charge, testez votre interface utilisateur sur ces facteurs de forme et apportez toute modification nécessaire, afin que votre interface utilisateur s’adapte correctement à chacun d’eux. Il s’agit d’une tâche post-portage, ou d’un portage d’étirements, et il existe quelques exemples dans la pratique dans les études de cas Bookstore2 et QuizGame .
Approche du portage de couche par couche
Lors du portage d’une application universelle 8.1 vers le modèle pour les applications UWP, pratiquement toutes vos connaissances et expérience seront transférées, comme la plupart de votre code source et du balisage et des modèles logiciels que vous utilisez.
- Affichage. La vue (avec le modèle d’affichage) constitue l’interface utilisateur de votre application. Dans l’idéal, la vue se compose de marques liées aux propriétés observables d’un modèle d’affichage. Un autre modèle (courant et pratique, mais uniquement à court terme) est destiné au code impératif dans un fichier code-behind pour manipuler directement les éléments de l’interface utilisateur. Dans les deux cas, le balisage et la conception de votre interface utilisateur( et même le code impératif qui manipule les éléments de l’interface utilisateur) seront simples à porter.
- Afficher les modèles et les modèles de données. Même si vous n’adoptez pas formellement les modèles de séparation des préoccupations (tels que MVVM), il existe inévitablement du code présent dans votre application qui effectue la fonction de modèle de vue et de modèle de données. Afficher le code du modèle utilise des types dans les espaces de noms de l’infrastructure d’interface utilisateur. Le modèle d’affichage et le code du modèle de données utilisent également le système d’exploitation non visuel et les API .NET Framework (y compris les API pour l’accès aux données). Ces API sont également disponibles pour les applications UWP. La plupart du temps, si ce n’est pas le cas, le port de ce code n’est pas modifié.
- Services cloud. Il est probable que certaines de vos applications (peut-être une grande quantité) s’exécutent dans le cloud sous la forme de services. La partie de l’application en cours d’exécution sur l’appareil client se connecte à celles-ci. Il s’agit de la partie d’une application distribuée qui restera probablement inchangée lors du portage de la partie cliente. Si vous n’en avez pas encore, une bonne option de services cloud pour votre application UWP est Microsoft Azure Mobile Services, qui fournit des composants principaux puissants que votre application peut appeler pour des services allant de notifications simples pour les mises à jour de vignettes actives jusqu’au type d’extensibilité lourde qu’une batterie de serveurs peut fournir.
Avant ou pendant le portage, déterminez si votre application peut être améliorée en la refactorisant afin que le code ayant un objectif similaire soit rassemblé dans des couches et non dispersé arbitrairement. Le fait de factoriser votre application en couches comme celles décrites ci-dessus vous permet de rendre votre application plus facile, de la tester, puis de la lire et de la gérer. Vous pouvez rendre les fonctionnalités plus réutilisables en suivant le modèle Model-View-ViewModel (MVVM). Ce modèle conserve les données, l’entreprise et les parties de l’interface utilisateur de votre application séparément les unes des autres. Même dans l’interface utilisateur, il peut conserver l’état et le comportement distincts, et séparément testables, à partir des visuels. Avec 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. Il est probable que vous serez en mesure de réutiliser une grande partie du modèle d’affichage et des parties d’affichage sur les appareils.
Sujet | Description |
---|---|
Portage du projet | Vous avez deux options lorsque vous commencez le processus de portage. Il s’agit de modifier une copie de vos fichiers projet existants, y compris le manifeste du package d’application (pour cette option, voir les informations sur la mise à jour de vos fichiers projet dans Migrer des applications vers le plateforme Windows universelle (UWP)). L’autre option consiste à créer un projet Windows 10/11 dans Visual Studio et à copier vos fichiers dans celui-ci. |
Dépannage | Nous vous recommandons vivement de lire jusqu’à la fin de ce guide de portage, mais nous comprenons également que vous êtes impatient d’aller de l’avant et de passer à l’étape où votre projet génère et s’exécute. À cette fin, vous pouvez faire des progrès temporaires en commentant ou en stubbant n’importe quel code non essentiel, puis en retournant pour rembourser cette dette ultérieurement. Le tableau des symptômes de résolution des problèmes et des remèdes dans cette rubrique peut vous être utile à ce stade, même s’il n’est pas un substitut à la lecture des rubriques suivantes. Vous pouvez toujours vous référer au tableau à mesure que vous progressez dans les rubriques ultérieures. |
Portage du balisage XAML et de l’IU | La pratique de la définition de l’interface utilisateur sous la forme de balisage XAML déclaratif traduit extrêmement bien les applications Universal 8.1 vers les applications UWP. Vous constaterez que la plupart de vos marques de balisage sont compatibles, même si vous devrez peut-être apporter des ajustements aux clés de ressources système ou aux modèles personnalisés que vous utilisez. |
Portage des E/S, des appareils et du modèle d’application | Le code qui s’intègre à l’appareil lui-même et à ses capteurs implique l’entrée et la sortie vers l’utilisateur. Il peut également impliquer le traitement des données. Toutefois, ce code n’est généralement pas considéré comme la couche d’interface utilisateur ou la couche de données. Ce code inclut l’intégration avec le contrôleur de vibration, l’accéléromètre, le gyroscope, le microphone et le haut-parleur (qui se croisent avec la reconnaissance vocale et la synthèse), l’emplacement (géo) et les modalités d’entrée telles que le toucher, la souris, le clavier et le stylet. |
Étude de cas : Bookstore1 | Cette rubrique présente une étude de cas sur le portage d’une application universelle 8.1 très simple vers une application Windows 10 et Windows 11 UWP. Une application Universelle 8.1 est une application qui génère un package d’application pour Windows 8.1 et un autre package d’application pour Windows Phone 8.1. Avec Windows 10 et Windows 11, vous pouvez créer un package d’application unique que vos clients peuvent installer sur un large éventail d’appareils, et c’est ce que nous allons faire dans cette étude de cas. Consultez le Guide des applications UWP. |
Étude de cas : Bookstore2 | Cette étude de cas, qui s’appuie sur les informations fournies dans le contrôle SemanticZoom . Dans le modèle d’affichage, chaque instance de la classe Author représente le groupe des livres écrits par cet auteur, et dans SemanticZoom, nous pouvons afficher la liste des livres regroupés par auteur ou nous pouvons effectuer un zoom arrière pour afficher une liste d’auteurs. |
Étude de cas : QuizGame | Cette rubrique présente une étude de cas sur le portage d’un exemple d’application winRT 8.1 de jeu de jeu d’égal à égal fonctionnel vers une application UWP Windows 10 et Windows 11. |
Rubriques connexes
Documentation