Arquitectura de implementación e información general sobre aplicaciones dependientes del marco

En este artículo se explica una arquitectura de alto nivel de SDK de Aplicaciones para Windows implementación. Los conceptos siguientes se aplican principalmente a SDK de Aplicaciones para Windows aplicaciones dependientes del marco. Una aplicación dependiente del marco depende de la SDK de Aplicaciones para Windows tiempo de ejecución que esté presente en la máquina de destino.

Hay dos opciones principales para distribuir una aplicación dependiente del marco:

Método de implementación de aplicaciones Requisitos
Empaquetado - Debe declarar la dependencia en el paquete de Framework en el manifiesto del paquete.
- La API de implementación es necesaria para las aplicaciones distribuidas de Microsoft Store y se recomienda para las aplicaciones distribuidas que no son de la Tienda para garantizar que se instalen las dependencias en tiempo de ejecución.
Empaquetada con ubicación externa o sin empaquetar - Debe distribuir el tiempo de ejecución mediante el Instalador o instalando directamente los paquetes MSIX necesarios.
- Requisitos de tiempo de ejecución adicionales: debe inicializar el acceso al entorno de ejecución de SDK de Aplicaciones para Windows a través de bootstrap API.

Para obtener más información sobre estos requisitos, consulte los siguientes artículos:

Términos clave

En las secciones siguientes se definen los términos clave para SDK de Aplicaciones para Windows implementación y detalles adicionales sobre algunos de estos paquetes.

Término Definición
tiempo de ejecución de SDK de Aplicaciones para Windows Los paquetes MSIX requeridos por una aplicación para usar el SDK de Aplicaciones para Windows. Estos paquetes incluyen: Framework, Main, Singleton y DDLM. Según las características usadas y el método de implementación de la aplicación, necesitará un determinado conjunto de estos paquetes en el equipo de destino.
Paquete de marco Contiene archivos binarios usados en tiempo de ejecución por aplicaciones (la mayoría SDK de Aplicaciones para Windows características). El marco incluye un componente de programa previo que permite a las aplicaciones instalar automáticamente la versión más reciente del SDK de Aplicaciones para Windows, que se actualizará con una cadencia de lanzamiento normal.
Paquete principal Paquete que contiene tareas en segundo plano para realizar un seguimiento de las dependencias dinámicas y permite las actualizaciones automáticas del paquete framework desde Microsoft Store.
Paquete Singleton Contiene tareas en segundo plano, servicios, extensiones de aplicación y otros componentes que no se incluyen en el paquete framework, como las notificaciones push. Por lo general, se trata de un único proceso de larga duración que está asincrónica entre aplicaciones.
Paquete del Administrador de duración de dependencia dinámica (DDLM) Impide que el sistema operativo realice actualizaciones de mantenimiento en los paquetes MSIX mientras se usa una aplicación empaquetada con ubicación externa o aplicación sin empaquetar.
Archivos de arranque Binario local de la aplicación usado por empaquetado con ubicación externa y aplicaciones desempaquetadas para buscar y cargar la mejor coincidencia de versión SDK de Aplicaciones para Windows según sea necesario para la aplicación.
Aprovisionamiento El proceso de instalación y registro de paquetes (incluidos archivos y claves del Registro) en todo el sistema para eliminar la necesidad de una instalación repetida por parte de los otros usuarios. Se puede hacer como parte del sistema operativo o durante la instalación de una aplicación.
Instalador Hace referencia al instalador de .exe que implementa los paquetes Framework, Main, Singleton y DDLM.
MSIX Tecnología moderna del instalador que permite a los usuarios instalar de forma segura una aplicación por usuario, directamente desde Microsoft Store o un sitio web. En equipos empresariales o compartidos, las aplicaciones se pueden instalar para todos los usuarios a través de PowerShell y MDM.

Paquete de marco

Al compilar una aplicación que usa el SDK de Aplicaciones para Windows, la aplicación hace referencia a un conjunto de componentes de tiempo de ejecución de SDK de Aplicaciones para Windows que se distribuyen a los usuarios finales a través de un paquete de marco. El paquete de marco permite que las aplicaciones accedan a SDK de Aplicaciones para Windows componentes a través de un único origen compartido en el dispositivo del usuario, en lugar de agruparlos en el paquete de la aplicación. El paquete de marco también incluye sus propios recursos, como archivos DLL y definiciones de API (COM y registros de Windows Runtime). Estos recursos se ejecutan en el contexto de la aplicación, por lo que heredan las funcionalidades y privilegios de la aplicación y no declaran ninguna funcionalidad o privilegios propios. Para obtener más información sobre las dependencias del paquete de marcos, vea Paquetes de marcos MSIX y dependencias dinámicas.

El paquete de marco de SDK de Aplicaciones para Windows es un paquete MSIX que se implementa para los usuarios finales a través de Microsoft Store. Se puede actualizar fácilmente y rápidamente con las versiones de mantenimiento, lo que puede incluir correcciones de seguridad y confiabilidad. Todas las aplicaciones dependientes del marco que usan el SDK de Aplicaciones para Windows tienen una dependencia en una instancia compartida del paquete de marco, como se muestra en el diagrama siguiente.

Diagrama de cómo las aplicaciones acceden al paquete de SDK de Aplicaciones para Windows framework

Cuando se realiza un servicio de una nueva versión del paquete de marco de SDK de Aplicaciones para Windows, todas las aplicaciones dependientes del marco se actualizan a la nueva versión sin tener que redistribuir una copia. Las actualizaciones de Windows a la versión más reciente de los marcos a medida que se publican, y las aplicaciones harán referencia automáticamente a la versión más reciente del paquete de marco durante el inicio. Las versiones anteriores del paquete de marco no se quitarán del sistema hasta que ya no se ejecuten ni se usen activamente en las aplicaciones del sistema.

Diagrama de cómo las aplicaciones obtienen actualizaciones del paquete de marco de SDK de Aplicaciones para Windows

Dado que la compatibilidad de aplicaciones es importante para Microsoft y para las aplicaciones que dependen del SDK de Aplicaciones para Windows, el paquete de marco de SDK de Aplicaciones para Windows sigue las reglas de control de versiones semánticas 2.0.0. Esto significa que después de publicar la versión 1.0 de la SDK de Aplicaciones para Windows, el paquete de SDK de Aplicaciones para Windows framework garantizará la compatibilidad entre los cambios de versión secundaria y de revisión, y los cambios importantes solo se producirán entre las actualizaciones de la versión principal.

Paquete Singleton

El paquete singleton garantiza que un único proceso de ejecución prolongada pueda controlar los servicios que se usan en varias aplicaciones, que se pueden ejecutar en diferentes versiones del SDK de Aplicaciones para Windows.

La SDK de Aplicaciones para Windows singleton es necesaria para habilitar las notificaciones push para aplicaciones no empaquetadas y aplicaciones Win32 empaquetadas con versiones de Windows inferiores a 20H1, que no pueden ser compatibles con la clase PushNotificationTrigger y ToastNotificationActionTrigger existente. Las características de SDK de Aplicaciones para Windows futuras que no se pueden admitir en el paquete de Framework se agregarán al paquete Singleton.

Requisitos adicionales para aplicaciones sin empaquetar

Archivos de arranque

El programa previo es una biblioteca que debe incluirse con el empaquetado con la ubicación externa o la aplicación sin empaquetar. Proporciona la API de arranque (consulte Uso del entorno de ejecución de SDK de Aplicaciones para Windows para aplicaciones empaquetadas con ubicación externa o sin empaquetar), lo que permite que las aplicaciones sin empaquetar realicen estas tareas importantes:

  • Inicialice el Administrador de duración de dependencia dinámica (DDLM) para el paquete de SDK de Aplicaciones para Windows framework.
  • Busque y cargue el paquete de marco de SDK de Aplicaciones para Windows en el gráfico de paquetes de la aplicación.

Para realizar estas tareas, el paquete nuget aprovecha los inicializadores de módulo para conectar el programa previo automáticamente. Solo tiene que establecer <WindowsPackageType>None</WindowsPackageType> en el archivo del proyecto. En escenarios avanzados, si quieres controlar la inicialización, puedes llamar a la API del programa previo directamente en el código de inicio de la aplicación (consulta Tutorial: Uso de la API de arranque en una aplicación empaquetada con ubicación externa o sin empaquetar que use la SDK de Aplicaciones para Windows) para que pueda inicializar correctamente el sistema para la aplicación no empaquetada. La aplicación debe usar la API del programa previo para poder usar SDK de Aplicaciones para Windows características como WinUI, ciclo de vida de la aplicación, MRT Core y DWriteCore.

La biblioteca de programa previo de la versión SDK de Aplicaciones para Windows 1.0 incluye:

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ y C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (contenedor de C#)

Administrador de duración de dependencia dinámica (DDLM)

El propósito del DDLM es evitar el mantenimiento del paquete de marco de SDK de Aplicaciones para Windows mientras está en uso por parte de una aplicación sin empaquetar. Contiene un servidor que debe inicializar el programa previo al inicio de una aplicación para proporcionar esa funcionalidad.

Hay un DDLM para cada versión y arquitectura del paquete de marco de SDK de Aplicaciones para Windows. Esto significa que en un x64 equipo, es posible que tenga una x86 versión y x64 de DDLM para admitir aplicaciones de ambas arquitecturas.

Requisitos adicionales