Windows App SDK (anteriormente conocido como Project Reunion ) [2] es un kit de desarrollo de software (SDK) de Microsoft que proporciona un conjunto unificado de API y componentes que se pueden utilizar para desarrollar aplicaciones de escritorio tanto para Windows 11 como para Windows 10 versión 1809 y posteriores. El propósito de este proyecto es ofrecer una implementación desacoplada de capacidades que anteriormente estaban estrechamente acopladas al modelo de aplicación UWP. [3] Windows App SDK permite a los desarrolladores nativos de Win32 ( USER32 / GDI32 ) o .NET ( WPF / WinForms ) un camino a seguir para mejorar sus aplicaciones con características modernas. [3]
De ello se desprende que Windows App SDK no pretende sustituir a Windows SDK . [3] Al exponer una interfaz de programación de aplicaciones (API) común que utiliza principalmente Windows Runtime (WinRT) a través de metadatos WinMD generados , se eliminan en gran medida las desventajas que alguna vez caracterizaron a ambos modelos de aplicaciones. Los paquetes NuGet para la versión 1.4 se lanzaron en agosto de 2023 después de aproximadamente cuatro meses de desarrollo. [4]
Si bien Microsoft ha desarrollado una serie de características nuevas, algunas de las que se enumeran a continuación son abstracciones de la funcionalidad proporcionada por las API existentes. [3]
La mayor parte de la inversión [5] en la pila de interfaz de usuario desacoplada [6] se ha destinado a corregir errores, mejorar la experiencia de depuración y simplificar las capacidades de gestión de ventanas que se hicieron posibles al cambiar de CoreWindow. Se introdujo una API que abstrae los primitivos USER32/GDI32 conocida como AppWindow para exponer un conjunto unificado de capacidades de gestión de ventanas [7] y permitir la compatibilidad con controles de ventanas personalizados.
Se anunció un reemplazo para el control UWP WebView desde el principio. [8] Esto se debe a que estaba basado en un motor de navegador no compatible . [9] Se desarrolló un nuevo control basado en Chromium , llamado WebView2 , que se puede usar desde WinUI y otros tipos de aplicaciones compatibles.
Si bien MSIX está incluido en el SDK de aplicaciones de Windows y se considera el formato de empaquetado de aplicaciones recomendado, [10] [11] un objetivo de diseño fue permitir aplicaciones no empaquetadas. Estas aplicaciones se pueden implementar como autónomas o dependientes del marco. Se incluye soporte para la carga dinámica de dependencias de aplicaciones tanto para aplicaciones empaquetadas como no empaquetadas. [12]
DWriteCore se está desarrollando como una solución desacoplada e independiente del dispositivo para la representación de texto de alta calidad. [13] Win2D también se ha puesto a disposición de las aplicaciones WinUI 3. [14]
MRT Core permite la gestión de recursos de aplicaciones para fines como la localización. Es una versión desacoplada del sistema de gestión de recursos de UWP. [15]
Con las versiones estables entregadas después de su lanzamiento inicial, Windows App SDK ahora admite varias características del ciclo de vida de las aplicaciones que anteriormente requerían una cantidad considerable de esfuerzo por parte de los desarrolladores para implementarlas en aplicaciones Win32. Estas características incluyen notificaciones de administración de energía , activación enriquecida, múltiples instancias y reinicio programático de la aplicación. [16]
La compatibilidad con notificaciones push se implementó inicialmente como una función de vista previa de acceso limitado. [17] Sin embargo, las API para ello se han estabilizado desde entonces y las notificaciones push se pueden enviar a los usuarios de la aplicación. La documentación oficial establece que Microsoft puede revocar el acceso a la función a su discreción. [17] [18] Además, las aplicaciones ahora pueden mostrar fácilmente notificaciones de aplicaciones locales sin la necesidad de crear una carga útil XML . [19]
La integración de terceros con el sistema Windows Widgets en Windows 11 se ha incluido como parte del canal de lanzamiento estable. [20] Los desarrolladores pueden diseñar widgets personalizados para su aplicación utilizando tarjetas adaptables [21] y mostrarlos en el tablero de widgets. [22]