Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Windows proporciona varias tecnologías que permiten a la aplicación proporcionar funcionalidad a otras aplicaciones o consumir complementos de terceros. En este artículo se comparan las opciones de extensibilidad disponibles para SDK de Aplicaciones para Windows aplicaciones de escritorio.
Introducción a las opciones de extensibilidad
| Tecnología | Description | Se requiere la identidad del paquete | Sistema operativo mínimo |
|---|---|---|---|
| App Services | Comunicación de solicitud y respuesta entre aplicaciones a través de AppServiceConnection |
Sí | Windows 10 1607 |
| Extensiones de aplicación | Modelo de complemento: la aplicación host detecta contenido de paquetes de extensión | Sí | Windows 10 1607 |
| Extensiones de paquete | Extensibilidad de nivel de paquete más amplia con uap17:PackageExtension |
Sí | Windows 11 |
| Paquetes opcionales | Paquetes de contenido adicionales que complementan una aplicación principal | Sí | Windows 10 1709 |
| Paquetes de recursos | Recursos de idioma, escala y accesibilidad separados por el mercado | Sí | Windows 10 |
Elección de la tecnología adecuada
Use servicios de aplicaciones cuando
- Necesita comunicación bidireccional entre aplicaciones independientes.
- La aplicación de consumidor envía una solicitud y espera una respuesta.
- Necesita exponer una interfaz tipo API a otras aplicaciones.
Ejemplo: servicio de traducción al que otras aplicaciones pueden llamar para traducir texto.
Usa extensiones de apps cuando
- La aplicación necesita un modelo de complemento en el que terceros proporcionan contenido, temas o complementos.
- Las extensiones se detectan en tiempo de ejecución desde paquetes instalados.
- Las extensiones proporcionan datos o configuración, no código ejecutable (la ejecución de código debe usar app services).
Ejemplo: un editor de imágenes que detecta paquetes de filtros de paquetes de extensión instalados.
Usar extensiones de paquete cuando
- Necesita una mayor extensibilidad a nivel de paquete en Windows 11.
- Las extensiones necesitan tener acceso a más contenido del paquete que el
PublicFoldermodelo permite.
Utiliza paquetes opcionales cuando
- Tiene contenido adicional (DLC, características premium) distribuidos como paquetes independientes.
- El mismo publicador crea el contenido.
Patrones de arquitectura
App Service con detección de extensiones
Combina extensiones de aplicación con servicios de la aplicación para una arquitectura completa de complementos:
- La aplicación host usa
AppExtensionCatalogpara detectar extensiones instaladas. - Cada extensión declara propiedades que describen sus funcionalidades.
- Cuando el usuario activa una extensión, la aplicación host se conecta al servicio de aplicaciones de la extensión para la comunicación bidireccional.
┌─────────────────┐ ┌──────────────────┐
│ Host app │ │ Extension app │
│ │ │ │
│ AppExtension │◄────►│ AppExtension │
│ Catalog │ │ declaration │
│ │ │ │
│ AppService │◄────►│ AppService │
│ Connection │ │ provider │
└─────────────────┘ └──────────────────┘
Solo extensión de contenido
Para escenarios más sencillos en los que las extensiones proporcionan contenido estático (temas, plantillas, archivos de datos):
- La aplicación host detecta extensiones a través de
AppExtensionCatalog. - Lee los archivos de la extensión
PublicFolder. - No se necesita ningún servicio de aplicaciones.
Diferencias con la extensibilidad de UWP
Las tecnologías de extensibilidad que se describen aquí funcionan de la misma manera en SDK de Aplicaciones para Windows aplicaciones de escritorio que en UWP, con un requisito: identidad de paquete MSIX. Todas las características de extensibilidad se basan en el manifiesto del paquete para las declaraciones y el catálogo de paquetes para la detección.
Si la aplicación de escritorio está desempaquetada, no puede usar estas tecnologías de extensibilidad. Considere enfoques alternativos como:
- Interfaces de complemento basadas en COM
- Detección de extensiones basadas en el sistema de archivos
- Canalizaciones con nombre u otros mecanismos IPC