Compartir a través de


Mover de Windows Runtime 8.x a UWP

Si tienes una aplicación Universal 8.1 ,ya sea que tenga como destino Windows 8.1, Windows Phone 8.1 o ambas, verás que el código fuente y las aptitudes se migrarán sin problemas a Windows 10. Con Windows 10, puedes crear una aplicación de Plataforma universal de Windows (UWP), que es un único paquete de aplicación que los clientes pueden instalar en cada tipo de dispositivo. Para obtener más información sobre Windows 10, las aplicaciones para UWP y los conceptos de código adaptable y la interfaz de usuario adaptable que mencionaremos en esta guía de portabilidad, consulta Guía para aplicaciones para UWP.

Durante la migración, encontrarás que Windows 10 comparte la mayoría de las API con las plataformas anteriores, así como el marcado XAML, el marco de interfaz de usuario y las herramientas, y lo encontrarás familiarizado. Al igual que antes, todavía puedes elegir entre C++, C# y Visual Basic para que el lenguaje de programación lo use junto con el marco de interfaz de usuario XAML. Los primeros pasos para planear exactamente qué hacer con la aplicación o las aplicaciones actuales dependerán de los tipos de aplicaciones y proyectos que tenga. Esto se explica en las secciones siguientes.

Si tiene una aplicación universal 8.1

Una aplicación universal 8.1 se compila a partir de un proyecto de aplicación universal 8.1. Supongamos que el nombre del proyecto es AppName_81. Contiene estos subproyectos.

  • AppName_81.Windows. Este es el proyecto que compila el paquete de la aplicación para Windows 8.1.
  • AppName_81.WindowsPhone. Este es el proyecto que compila el paquete de la aplicación para Windows Phone 8.1.
  • AppName_81.Shared. Este es el proyecto que contiene código fuente, archivos de marcado y otros recursos y recursos que usan los otros dos proyectos.

A menudo, una aplicación universal de Windows 8.1 ofrece las mismas características y lo hace con el mismo código y marcado, tanto en sus formularios de Windows 8.1 como de Windows Phone 8.1. Una aplicación como esa es una candidata ideal para migrar a una sola aplicación de Windows 10 que tiene como destino la familia de dispositivos universales (y que puedes instalar en la gama más amplia de dispositivos). Básicamente, portará el contenido del proyecto Compartido y tendrá que usar poco o nada de los otros dos proyectos porque habrá poco o nada en ellos.

Otras veces, el formulario windows 8.1 o el Windows Phone 8.1 de la aplicación contienen características únicas. O contienen las mismas características, pero implementan esas características mediante diferentes técnicas o tecnología diferente. Con una aplicación como esta, puedes elegir portarla a una sola aplicación que tenga como destino la familia de dispositivos universales (en cuyo caso querrás que la aplicación se adapte a diferentes dispositivos), o puedes elegir portarla como más de una aplicación, quizás una destinada a la familia de dispositivos de escritorio y otra dirigida a la familia de dispositivos móviles. La naturaleza de la aplicación Universal 8.1 determinará cuál de estas opciones es la mejor para su caso.

  1. Porte el contenido del proyecto Compartido a una aplicación destinada a la familia de dispositivos universales. Si procede, salva cualquier otro contenido de los proyectos de Windows y WindowsPhone, y usa ese contenido incondicionalmente en la aplicación o condicional en el dispositivo en el que se ejecuta la aplicación en el momento (este último comportamiento se conoce como adaptable).
  2. Portar el contenido del proyecto de WindowsPhone a una aplicación destinada a la familia de dispositivos universales. Si procede, salva cualquier otro contenido del proyecto de Windows, usándolo de forma incondicional o adaptable.
  3. Porte el contenido del proyecto de Windows a una aplicación destinada a la familia de dispositivos universales. Si procede, salva cualquier otro contenido del proyecto de WindowsPhone, usándolo de forma incondicional o adaptable.
  4. Porte el contenido del proyecto de Windows a una aplicación destinada a la familia de dispositivos universal o de escritorio, y también porte el contenido del proyecto de WindowsPhone a una aplicación destinada a la familia de dispositivos universal o móvil. Puede crear una solución con un proyecto compartido y seguir compartiendo código fuente, archivos de marcado y otros recursos y recursos entre los dos proyectos. O bien, puede crear soluciones diferentes y compartir los mismos elementos mediante vínculos.

Si tienes una aplicación de Windows 8.1

Portar el proyecto a una aplicación que tenga como destino la familia de dispositivos universal o de escritorio. Si eliges la familia de dispositivos universales y la aplicación llama a las API que solo se implementan en la familia de dispositivos de escritorio, puedes proteger esas llamadas con código adaptable.

Si tiene una aplicación de Windows Phone 8.1

Portar el proyecto a una aplicación que tenga como destino la familia de dispositivos universales o móviles. Si eliges la familia de dispositivos universales y la aplicación llama a las API que solo se implementan en la familia de dispositivos móviles, puedes proteger esas llamadas con código adaptable.

Adaptación de la aplicación a varios factores de forma

La opción que elija entre las secciones anteriores determinará el intervalo de dispositivos en los que se ejecutará la aplicación o las aplicaciones, y que puede ser una gama muy amplia de dispositivos. Incluso limitar la aplicación a la familia de dispositivos móviles le deja todavía una amplia gama de tamaños de pantalla para admitir. Por lo tanto, si la aplicación se ejecutará en factores de forma que no admitía anteriormente, pruebe la interfaz de usuario en esos factores de forma y realice cualquier cambio necesario, de modo que la interfaz de usuario se adapte adecuadamente en cada uno. Puede pensar que se trata de una tarea posterior a la migración, o un objetivo extendido de portabilidad, y hay algunos ejemplos de ello en la práctica en los casos prácticos bookstore2 y QuizGame .

Aproximación a la migración de capas por capa

Al migrar una aplicación universal 8.1 al modelo para aplicaciones para UWP, prácticamente todos tus conocimientos y experiencia se transferirán, como lo hará la mayoría del código fuente y el marcado y los patrones de software que usas.

  • Vista. La vista (junto con el modelo de vista) compone la interfaz de usuario de la aplicación. Idealmente, la vista consta de marcado enlazado a propiedades observables de un modelo de vista. Otro patrón (común y conveniente, pero solo en el corto plazo) es para el código imperativo en un archivo de código subyacente para manipular directamente los elementos de la interfaz de usuario. En cualquier caso, el marcado y el diseño de la interfaz de usuario, e incluso el código imperativo que manipula los elementos de la interfaz de usuario, será sencillo de migrar.
  • Ver modelos y modelos de datos. Incluso si no adopta formalmente patrones de separación de preocupaciones (como MVVM), es inevitable que haya código presente en la aplicación que realiza la función del modelo de vista y del modelo de datos. El código de modelo de vista usa tipos en los espacios de nombres del marco de interfaz de usuario. Tanto el modelo de vista como el código del modelo de datos también usan el sistema operativo no visual y las API de .NET Framework (incluidas las API para el acceso a datos). Y esas API también están disponibles para aplicaciones para UWP, por lo que la mayoría de si no todo este código se migrará sin cambios.
  • Servicios en la nube. Es probable que algunas de las aplicaciones (quizás una gran cantidad de ella) se ejecuten en la nube en forma de servicios. La parte de la aplicación que se ejecuta en el dispositivo cliente se conecta a ellas. Esta es la parte de una aplicación distribuida que es más probable que permanezca sin cambios al migrar la parte del cliente. Si aún no tiene una, una buena opción de servicios en la nube para la aplicación para UWP es Microsoft Azure Mobile Services, que proporciona componentes de back-end eficaces que la aplicación puede llamar a servicios que van desde notificaciones sencillas para las actualizaciones de iconos dinámicos hasta el tipo de escalabilidad de trabajo intensivo que puede proporcionar una granja de servidores.

Antes o durante la migración, considere si la aplicación podría mejorarse refactorizando para que el código con un propósito similar se recopile en capas y no se disperse arbitrariamente. La factorización de la aplicación en capas como las descritas anteriormente facilita que la aplicación sea correcta, probarla y, a continuación, leerla y mantenerla. Puede hacer que la funcionalidad sea más reutilizable siguiendo el patrón Model-View-ViewModel (MVVM). Este patrón mantiene los datos, la empresa y las partes de la interfaz de usuario de la aplicación separados entre sí. Incluso dentro de la interfaz de usuario, puede mantener el estado y el comportamiento separados y, por separado, de los objetos visuales. Con MVVM, puede escribir los datos y la lógica de negocios una vez y usarlo en todos los dispositivos independientemente de la interfaz de usuario. Es probable que también pueda volver a usar gran parte del modelo de vista y las partes de vista en todos los dispositivos.

Tema Descripción
Portabilidad del proyecto Tiene dos opciones al comenzar el proceso de portabilidad. Una consiste en editar una copia de los archivos de proyecto existentes, incluido el manifiesto del paquete de aplicación (para esa opción, consulta la información sobre cómo actualizar los archivos de proyecto en Migrar aplicaciones a la Plataforma universal de Windows (UWP)). La otra opción es crear un nuevo proyecto de Windows 10/11 en Visual Studio y copiar los archivos en él.
Solución de problemas Se recomienda leer al final de esta guía de portabilidad, pero también sabemos que está ansioso por avanzar y llegar a la fase en la que se compila y se ejecuta el proyecto. Para ello, puede realizar un progreso temporal mediante comentarios o código auxiliar de cualquier código no esencial y, a continuación, volver a pagar esa deuda más adelante. La tabla de solución de problemas de síntomas y remedios de este tema puede resultarle útil en esta fase, aunque no es un sustituto de leer los siguientes temas. Siempre puede hacer referencia a la tabla a medida que avanza a través de los temas posteriores.
Migración de XAML y la interfaz de usuario La práctica de definir la interfaz de usuario en forma de marcado XAML declarativo se traduce muy bien de aplicaciones universales 8.1 a aplicaciones para UWP. Encontrará que la mayor parte del marcado es compatible, aunque es posible que tenga que realizar algunos ajustes en las claves de recurso del sistema o plantillas personalizadas que esté usando.
Migración del modelo de E/S, dispositivo y aplicación El código que se integra con el propio dispositivo y sus sensores implica la entrada y la salida al usuario. También puede implicar el procesamiento de datos. Sin embargo, este código no suele considerarse como la capa de interfaz de usuario o la capa de datos. Este código incluye la integración con el controlador de vibración, el acelerómetro, el giroscopio, el micrófono y el altavoz (que se intersecan con el reconocimiento de voz y la síntesis), la ubicación (geo)y las modalidades de entrada, como la entrada táctil, el mouse, el teclado y el lápiz.
Caso práctico: Bookstore1 En este tema se presenta un caso práctico de migrar una aplicación universal 8.1 muy sencilla a una aplicación para UWP de Windows 10 y Windows 11. Una aplicación universal 8.1 es una que compila un paquete de aplicación para Windows 8.1 y un paquete de aplicación diferente para Windows Phone 8.1. Con Windows 10 y Windows 11, puedes crear un único paquete de aplicación que los clientes puedan instalar en una amplia gama de dispositivos y eso es lo que haremos en este caso práctico. Consulta Guía para aplicaciones para UWP.
Caso práctico: Bookstore2 Este caso práctico, que se basa en la información especificada en el control SemanticZoom . En el modelo de vista, cada instancia de la clase Author representa el grupo de los libros escritos por ese autor y, en SemanticZoom, podemos ver la lista de libros agrupados por autor o podemos alejarnos para ver una lista de saltos de autores.
Caso práctico: QuizGame En este tema se presenta un caso práctico de migración de una aplicación de ejemplo de WinRT 8.1 que funciona a una aplicación para UWP de Windows 10 y Windows 11.

Documentación