Introducción a la plataforma SDK de Aplicaciones para Windows

El SDK de Aplicaciones para Windows admite dos lenguajes para el desarrollo de aplicaciones: C# y C++. Cada lenguaje usa una proyección del lenguaje para usar las API de Windows Runtime (WinRT), y ambos usan XAML (específicamente XAML de WinUI 3, en el espacio de nombres Microsoft.UI.Xaml) para definir la interfaz de usuario. Juntas, estas proyecciones y el marco de interfaz de usuario forman la capa de plataforma.

Note

C# y C++ son los únicos lenguajes con proyecciones admitidas para SDK de Aplicaciones para Windows y WinUI 3. Existen proyectos de comunidad para otros lenguajes (como Rust), pero no se admiten oficialmente.

¿Necesita saber esto?

Si crea un proyecto a partir de las plantillas de Visual Studio estándar para SDK de Aplicaciones para Windows o WinUI 3, la proyección de lenguaje ya está configurada automáticamente. El código de C# o C++ puede llamar directamente a las API de WinRT y no es necesario pensar en cómo funciona la proyección.

Normalmente, es necesario examinar más a fondo la capa de proyección cuando:

  • Cree un componente de Windows Runtime que consuman otras aplicaciones o lenguajes.
  • Distribuya una biblioteca como un paquete NuGet que encapsula las API de WinRT.
  • Interoperabilidad con interfaces COM o ABI de bajo nivel desde código C++.
  • Solucione los errores de compilación relacionados con el código de interoperabilidad generado o los archivos WinMD.

Para el desarrollo diario de aplicaciones, los detalles que figuran a continuación son información de contexto — útil si tienes curiosidad, pero no necesaria para empezar.

Proyecciones de idiomas

Las API de Windows Runtime se definen de forma independiente del lenguaje mediante archivos de metadatos de Windows (.winmd). Una proyección de lenguaje lee los metadatos y genera enlaces idiomáticos para que pueda llamar a las API de forma natural desde C++ o C#.

Projection Language ¿Qué es? Patrón de espacio de nombres
C++/WinRT C++17 Una biblioteca de solo encabezado que proporciona acceso de primera clase a las API de WinRT. Reemplaza a C++/CX y a la Biblioteca de plantillas de C++ para Windows Runtime (WRL). winrt::Microsoft::UI::Xaml
C#/WinRT C# (.NET) Un kit de herramientas empaquetado en NuGet que genera ensamblados de interoperabilidad de .NET a partir de archivos .winmd. Permite consumir y crear componentes de WinRT de C#. Microsoft.UI.Xaml

Marco de interfaz de usuario

Framework ¿Qué es? Namespace
XAML (WinUI 3) Lenguaje de marcado declarativo basado en XML para interfaces de usuario de WinUI 3. Controla el diseño, el estilo, el enlace de datos y las animaciones. El código subyacente se escribe en C# o C++. Microsoft.UI.Xaml (no Windows.UI.Xaml, que es UWP)

Importante

XAML de WinUI 3 usa el espacio de nombres Microsoft.UI.Xaml. Si ves código o documentación que hace referencia a Windows.UI.Xaml, que es XAML de UWP, que es un marco diferente. No mezcle los dos espacios de nombres en un proyecto de WinUI 3.

Pasos siguientes

Elija el área que coincida con lo que desea aprender: