Antecedentes
Desde el punto de vista del desarrollador, el principal punto de venta de Windows 10 es su nueva Plataforma Universal * Windows (UWP) .
* Donde "Universal" realmente significa "universal para todos los dispositivos que ejecutan Windows 10", y no "universal para dispositivos que ejecutan no solo Windows 10, sino también Windows 8.1 y quizás Windows 7". Entonces, si está creando una aplicación para UWP, en realidad solo está creando una "aplicación para Windows 10". Las aplicaciones para UWP no se ejecutarán incluso en dispositivos con Windows 8.1 y Windows Phone 8.1, es decir, no son compatibles con versiones anteriores.
A partir del tercer trimestre de 2015, Windows 10 está disponible para PC y dispositivos IoT . Pasarán al menos otros meses antes de que Windows 10 Mobile se lance al público, pero probablemente no más de un año. Esto significa que Windows Phone 8.1 seguirá existiendo por un tiempo todavía.
Pregunta
Estoy a punto de comenzar a desarrollar una aplicación de Windows Phone, y planeo publicarla dentro del próximo mes, ya que es una aplicación bastante simple. Dado que Windows 10 Mobile no llegará pronto, y mucho menos los dispositivos de todo el mundo se están actualizando, tengo que apuntar a Windows Phone 8.1 por ahora. Sin embargo, ya que no será que mucho antes de Windows 10 rollos móvil fuera, me pregunto si sería prudente para preparar mi solución para el despliegue de Windows 10 UWP , así como teléfono de Windows 8.1 (que también me permitirá Continuar apoyando 8.1 durante el tiempo que necesite
Veo que puedo agrupar un proyecto UWP y un proyecto 8.1 en la misma solución, y compartir archivos y activos de origen a través de un proyecto compartido como se hizo con la plantilla universal de Windows 8.1 en Visual Studio. ¿Estoy en el camino correcto? Si es así, ¿hay alguna pauta adicional que deba seguir para garantizar que todo (incluido XAML, ya que idealmente me gustaría tener la misma o al menos una interfaz de usuario similar en ambas plataformas) realmente funcione correctamente en ambas plataformas, lo que representa cualquier incongruencia?
Alternativamente, no podría preocuparme por Windows 10 Mobile por ahora y comenzar con un proyecto 8.1, y migrarlo a UWP más adelante, pero todavía tendría que mantener ambas versiones de mi aplicación ya que no planeo abandonar 8.1 usuarios de inmediato. Todavía tengo que preocuparme por la característica / paridad XAML en este caso.
Respuestas:
Como dice en uno de sus comentarios, la mejor manera de hacerlo es mediante el uso de un proyecto compartido y agregando varias cabezas. En su caso, una cabeza de Windows Phone 8.1 y una cabeza de UWP. Esta posición también fue expresada en un MVA por Jerry Nixon y Andy Wigley (creo que esto es todo, pero se ha actualizado desde entonces), en la sección sobre portar aplicaciones 8.1 a uwp.
En su proyecto compartido, es posible que deba usar directivas de compilación condicional para diferenciar entre el código que se ejecuta en uwp y el teléfono 8.1. (Al igual que al crear aplicaciones universales de Windows 8.1 / teléfono 8.1)
fuente
Dependiendo de cuán específica sea la característica de Windows que necesita su aplicación, puede utilizar una plataforma como Xamarin que le permitiría escribir no solo para Windows, sino también para iOS y Android en la misma base de código.
fuente
Según mi experiencia: vale la pena colocar algunos ayudantes / lógica / etc. en las bibliotecas PCL. Luego puede crear dos proyectos (para UWP y WP8 respectivamente) que pueden utilizar PCL con cero cambios. Además, puede compartir servicios, ver modelos y modelos (con muy pocas líneas de compilación condicional #if).
Lo único que NO vale la pena compartir es el personal relacionado con la interfaz de usuario, ya que hay que cambiar / condicionar demasiadas cosas (por lo que es mucho más fácil preparar diseños separados para cada UWP y WP8, incluso si son prácticamente lo mismo).
PD: hice eso para UWP y WP8.1 Silverlight
fuente