Comment puis-je cibler Windows 10 UWP et Windows Phone 8.1 dans la même application?

18

Contexte

Du point de vue d'un développeur, le principal argument de vente de Windows 10 est sa nouvelle plateforme Windows universelle (UWP) .

* Où "Universal" signifie vraiment "universel pour tous les appareils qui exécutent Windows 10", et non "universel pour les appareils qui exécutent non seulement Windows 10, mais aussi Windows 8.1 et peut - être Windows 7". Donc, si vous créez une application UWP, vous construisez vraiment une "application Windows 10". Les applications UWP ne fonctionneront pas même sur les appareils Windows 8.1 et Windows Phone 8.1, c'est-à-dire qu'elles ne sont pas du tout rétrocompatibles.

En date du 3ème trimestre 2015, Windows 10 est disponible pour les PC et les appareils internet des objets . Il faudra au moins quelques mois avant que Windows 10 Mobile ne soit rendu public, mais probablement pas plus d'un an. Cela signifie que Windows Phone 8.1 sera continueront à circuler pendant un certain temps encore.

Question

Je suis sur le point de commencer à développer une application Windows Phone, et je prévois de la publier dans le mois prochain, car c'est une application assez simple. Étant donné que Windows 10 Mobile n'arrivera pas de sitôt, sans parler des appareils du monde entier mis à niveau, je dois cibler Windows Phone 8.1 pour l'instant. Cependant, comme il ne sera pas que longtemps avant que Windows 10 rouleaux mobiles, je me demande si ce serait sage de préparer ma solution pour le déploiement à Windows 10 UWP , ainsi que Windows Phone 8.1 (dont également me permettre de continuer à prendre en charge la version 8.1 aussi longtemps que nécessaire).

Je vois que je peux regrouper un projet UWP et un projet 8.1 dans la même solution et partager des fichiers source et des actifs via un projet partagé comme cela est fait avec le modèle universel Windows 8.1 dans Visual Studio. Suis-je sur la bonne voie? Si oui, y a-t-il des directives supplémentaires que je devrais suivre pour m'assurer que tout (y compris XAML, car idéalement j'aimerais avoir la même interface utilisateur ou au moins similaire sur les deux plates-formes) fonctionne correctement sur les deux plates-formes, ce qui représente des incongruités?

Alternativement, je ne pourrais tout simplement pas m'inquiéter pour Windows 10 Mobile pour l'instant et commencer avec un projet 8.1, et le migrer vers UWP plus tard, mais je devrais toujours maintenir les deux versions de mon application car je ne prévois pas d'abandonner 8.1 les utilisateurs immédiatement. Je devrais toujours m'inquiéter de la parité fonctionnalité / XAML dans ce cas.

BoltClock
la source
3
Au moment où une mise à jour, je suis allé de l' avant et crée une solution constituée d'un projet commun, un projet de UWP et d' un projet de WP8.1. Je détaillerai dans une réponse plus tard , une fois que je suis sûr que je sais ce que je fais ...
BoltClock
Les mises à jour que vous souhaitez partager vos découvertes sur ce sujet en particulier? Je suis vraiment intéressé de savoir comment cette approche fonctionne pas pour vous.
Nelson Reis
3
@Nelson Reis: Je suis en train de frais Mon application pour WP8.1, donc je ne l' ai pas commencé à travailler sur l'application UWP encore ( ce qui est génial!). Mais je le ferai bientôt. Jusqu'à présent, les choses fonctionnent plutôt bien du côté WP8.1.
BoltClock
Je suis juste intéressé par la mise à jour. Comment s'est passé le développement de WP8.1 et UWP? (J'ai moins de 50 points, je ne peux donc pas commenter) La raison en est que je commence à développer une application multiplateforme, et je suis en train de décider quelles technologies utiliser. ( Programmers.stackexchange.com/questions/314850/... )
makons
2
Salut, je suis désolé que ça prenne si longtemps Développement sur mon application UWP a été long à venir donc je vais avoir quelque chose à partager dans les deux prochaines semaines.
BoltClock

Réponses:

2

Comme vous le dites dans l'un de vos commentaires, la meilleure façon de procéder est d'utiliser un projet partagé et d'y ajouter plusieurs têtes. Dans votre cas , un windows phone 8.1 tête et tête de UWP. Cette position a également été exprimé dans un MVA par Jerry Nixon et Andy Wigley (Je pense que c'est, mais il a été mis à jour depuis), dans la section sur le portage 8.1 des applications à UWP.

Dans votre projet partagé, vous devrez peut-être utiliser des directives de compilation conditionnelle pour différencier le code qui s'exécute dans uwp et dans phone 8.1. (Comme lors de la création d'applications universelles pour Windows 8.1 / téléphone 8.1)

Corcus
la source
1

Selon la façon spécifique de fonctionnalités de Windows votre application a besoin d'être, vous pourriez aller avec une plate - forme comme Xamarin qui vous permettra d'écrire non seulement pour Windows, mais aussi iOS et Android dans la même base de code.

Kyle JV
la source
1

A partir de mon expérience: ça vaut le coup de placer des aides / logique / etc dans les bibliothèques PCL. Ensuite, vous pouvez créer deux projets (pour UWP et WP8 respectivement) qui peuvent utiliser PCL sans aucune modification. De plus, vous pouvez partager des services, des modèles voir et modèles (avec très peu de lignes de compilation conditionnelle #if).

La seule chose qui ne vaut pas partager est personnel UI liée trop de choses doivent être commuté / climatisation (il est donc beaucoup plus facile de préparer des formats séparés pour chacune des UWP et WP8 même si elles sont pratiquement le même).

PS J'ai fait ça pour UWP et WP8.1 Silverlight

Yury Schkatula
la source