Compartir a través de


Elección del marco de trabajo de la aplicación

Este artículo contiene la información que necesita para empezar a compilar aplicaciones para Windows y elegir el marco de interfaz de usuario que se adapte a su conjunto de aptitudes y escenario.

Windows ofrece una amplia gama de lenguajes, marcos y herramientas para compilar aplicaciones, como WinUI, React Native para escritorio, WPF, C++, C#, .NET y una variedad de marcos multiplataforma. Aquí proporcionamos información para ayudarle a decidir qué opción es la mejor para usted.

WinUI

Logotipo de WinUI.

Use WinUI y el SDK de aplicaciones de Windows para crear aplicaciones que parezcan excelentes y aprovechen las últimas versiones de Windows. Si no está familiarizado con el desarrollo de Windows o si está empezando a trabajar en una nueva aplicación de Windows, WinUI proporciona los recursos que necesita para crear grandes aplicaciones para Windows 11.

WinUI es una capa de interfaz de usuario basada en marcado XAML que contiene controles y estilos modernos para crear aplicaciones de Windows. Como capa nativa de la interfaz de usuario para el SDK de Aplicaciones para Windows, incorpora Fluent Design, lo que proporciona a cada aplicación de Windows el aspecto pulido que esperan los clientes.

Nota:

El SDK de Aplicaciones para Windows es un conjunto de nuevas herramientas y componentes para desarrolladores que representa la última evolución en la plataforma de desarrollo de aplicaciones de Windows. El SDK de aplicaciones de Windows proporciona un conjunto unificado de API y herramientas que las aplicaciones de escritorio en Windows 11 y versiones anteriores a Windows 10, versión 1809, pueden usar de forma coherente.

Aunque WinUI es la capa nativa de la interfaz de usuario, puede usar el SDK de Aplicaciones para Windows con aplicaciones WPF, WinForms o Win32. Si desarrolló aplicaciones para Windows antes, pero quiere empezar a trabajar con Windows App SDK en una aplicación existente, consulte Guías específicas del marco.

React Native para escritorio

React Native es una plataforma de desarrollo que permite compilar aplicaciones multiplataforma. React Native para escritorio incluye React Native para Windows y macOS, lo que aporta compatibilidad con React Native al SDK de Windows. React Native para escritorio permite usar JavaScript para compilar aplicaciones nativas de Windows para todos los dispositivos compatibles con Windows 10 y Windows 11. Esta compatibilidad incluye equipos, tabletas, 2 en 1s, Xbox, dispositivos de Realidad mixta, etc.

Con React Native para escritorio, se escribe la mayoría o todo el código de la aplicación en JavaScript o TypeScript. El marco genera una aplicación XAML para UWP nativa. Si la aplicación necesita llamar a una API de plataforma, normalmente puede hacerlo a través de uno de los muchos módulos de la comunidad. Si aún no existe un módulo, puede escribir fácilmente un módulo nativo para exponerlo.

Estas son algunas de las razones para elegir React Native para escritorio:

  • Quiere compartir código entre plataformas en la mayor medida posible, o bien tiene propiedades web con las que quiere compartir código.
  • Una mejora en la productividad de los desarrolladores y en el bucle interno, gracias a la actualización rápida.
  • Los aspectos básicos de la aplicación (rendimiento, accesibilidad, internacionalización) son tan buenos como una aplicación nativa para UWP.
  • Tiene experiencia con y una preferencia para JavaScript o TypeScript.
  • Quiere aprovechar bibliotecas exclusivas de JavaScript en npmjs.com y también muchas bibliotecas nativas.
  • La aplicación usa los controles nativos, la apariencia visual, las animaciones y los colores, por lo que se siente integrado en el lenguaje de diseño usado en Windows. Además, React Native para aplicaciones de escritorio no tiene que comprometer el conjunto de APIs a las que puede llamar. El marco le permite llamar a las API de plataforma, así como escribir sus propios administradores de vistas y módulos nativos.
  • Aprovechar el impulso de una comunidad grande y creciente, con una gran cantidad de módulos de la comunidad.

Para obtener más información sobre React Native for Desktop, consulte los vínculos siguientes:

WPF (Windows Presentation Foundation)

WPF es un marco bien establecido para aplicaciones de escritorio de Windows con acceso a .NET o .NET Framework. Al igual que WinUI, también usa el marcado XAML para separar la interfaz de usuario del código. WPF ofrece un conjunto completo de características de desarrollo de aplicaciones que incluyen controles, enlace de datos, diseño, gráficos en 2D y 3D, animación, estilos, plantillas, documentos, elementos multimedia, texto y tipografía. WPF es parte de. NET, así que permite compilar aplicaciones que incorporan otros elementos de la API de .NET.

Además, ahora puede integrar un entorno de espacio aislado en las aplicaciones WPF empaquetadas, lo que proporciona una capa adicional de seguridad. Esta mejora requiere poco o ningún cambio en el código, gracias a la nueva característica de seguridad de aislamiento de aplicaciones Win32.

Sugerencia

Si ya ha invertido en WPF, puede seguir utilizándolo y aprovechar las opciones de modernización de .NET 9. Puede compilar sus aplicaciones sabiendo que Microsoft sigue invirtiendo en WPF. Consulte las preguntas frecuentes para desarrolladores de Windows para obtener más información.

Si tiene una aplicación WPF .NET, también tiene acceso a las API y las características modernas de la plataforma Windows que proporciona el SDK de Aplicaciones para Windows. Para obtener más información, consulte Uso del SDK de Aplicaciones para Windows en una aplicación WPF y Modernización de las aplicaciones de escritorio.

Sugerencia

Si necesita más ayuda para decidir qué marco es la mejor opción para su aplicación, consulte el módulo de formación Elección del mejor marco de aplicaciones para un proyecto de desarrollo de Windows.

Otras opciones de plataforma nativa

Muchas aplicaciones para Windows se escriben con Win32, Windows Forms o UWP. Cada uno de estos marcos se admite y sigue recibiendo correcciones de errores, confiabilidad y seguridad, pero diferentes niveles de inversión para nuevas características y estilos. Para obtener más información sobre estos tipos de aplicaciones, consulte las pestañas siguientes.

Las aplicaciones de escritorio Win32 (también denominadas a veces aplicaciones de escritorio clásicas) son el tipo de aplicación original de las aplicaciones nativas de Windows que requieren acceso directo a Windows y al hardware. Este acceso hace que Win32 sea el tipo de aplicación que prefiera para las aplicaciones que necesitan el mayor nivel de rendimiento y el acceso directo al hardware del sistema.

Mediante el uso de la API de Win32 con C++, puedes lograr los niveles más altos de rendimiento y eficiencia. Puede tomar más control de la plataforma de destino con código no administrado de lo que es posible en un entorno en tiempo de ejecución administrado, como WinRT y .NET. Sin embargo, ejercer este nivel de control sobre la ejecución de la aplicación requiere un mayor cuidado y atención para hacerlo bien, y sacrifica productividad durante el desarrollo a cambio de rendimiento en tiempo de ejecución.

Estos son algunos aspectos destacados de lo que ofrece la API de Win32 y C++ para permitirle compilar aplicaciones de alto rendimiento.

  • Optimizaciones de nivel de hardware, como un estrecho control sobre la asignación de recursos, la duración de los objetos, el diseño de los datos, la alineación, el empaquetado de bytes, etc.
  • Acceso a conjuntos de instrucciones orientadas al rendimiento como SSE y AVX a través de funciones intrínsecas.
  • Programación genérica eficaz y con seguridad de tipos mediante el uso de plantillas.
  • Contenedores y algoritmos eficaces y seguros.
  • DirectX, en particular Direct3D y DirectCompute.
  • Use C++/WinRT para crear aplicaciones de escritorio Win32 modernas con acceso de primera clase a las API de Windows Runtime (WinRT).

Además, ahora puede integrar un entorno de espacio aislado en las aplicaciones Win32, lo que proporciona una capa adicional de seguridad. Esta mejora requiere poco o ningún cambio en el código, gracias a la nueva característica de seguridad de aislamiento de aplicaciones Win32.

También tiene acceso a las API y las características modernas de la plataforma Windows que proporciona el SDK de aplicaciones para Windows. Para obtener más información, consulte Uso del SDK de Aplicaciones para Windows en un proyecto existente y Modernización de las aplicaciones de escritorio.

Otras opciones multiplataforma

Si necesita que la aplicación sea multiplataforma, además de React Native for Desktop, considere .NET MAUI, Blazor Hybrid o una aplicación web progresiva (PWA). Muchas otras opciones están disponibles (esta es una lista de opciones populares), pero estas opciones son buenos puntos de partida.

.NET MAUI aprovecha la eficacia de WinUI en Windows, al mismo tiempo que habilita la ejecución en otros sistemas operativos. Blazor Hybrid combina marcos de cliente nativo móvil y de escritorio con .NET y Blazor. Otra opción multiplataforma como las aplicaciones web progresivas (PWA), son sitios web que funcionan como aplicaciones nativas que ya están instaladas en Windows y otras plataformas compatibles, a la vez que funcionan como sitios web normales en los exploradores.

Para obtener más información, consulte las pestañas siguientes:

.NET Multi-platform App UI (MAUI) es un marco multiplataforma de código abierto para compilar aplicaciones Android, iOS, macOS y Windows. Con .NET MAUI, puede aprovechar la interfaz de usuario nativa y los servicios de cada plataforma desde una sola base de código .NET. Dado que .NET MAUI favorece las experiencias nativas de la plataforma, usa WinUI y el SDK de Aplicaciones para Windows para que las aplicaciones obtengan la experiencia de usuario más reciente en Windows. Este enfoque proporciona a las aplicaciones acceso a todo lo que obtiene con WinUI, además de la capacidad de llegar a otras plataformas.

.NET MAUI para Windows es una opción genial si:

  • Quiere compartir tanto código de .NET como sea posible en aplicaciones móviles y de escritorio.
  • Quiere enviar la aplicación más allá de Windows a otros destinos móviles y de escritorio con experiencias nativas de plataforma.
  • Quiere usar C# o XAML para compilar aplicaciones multiplataforma.
  • Usa Blazor para el desarrollo web y desea incluir todo o parte de eso en una aplicación móvil o de escritorio.

Para obtener más información acerca de .NET MAUI, consulte los siguientes vínculos:

Comparación de características del marco de desarrollo de aplicaciones

Tiene muchas opciones para desarrollar aplicaciones para Windows. La mejor opción para usted depende de los requisitos de su aplicación, su código existente y su familiaridad con la tecnología. En la tabla siguiente se enumeran los marcos de desarrollo de aplicaciones más populares disponibles en Windows y las características compatibles con cada marco.

Característica .NET MAUI Blazor Híbrido React Native para escritorio XAML de UWP (Windows.UI.Xaml) Win32 (MFC o ATL) Windows Forms WinUI 3 WPF (Windows Presentation Foundation)
Idioma C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Óxido C#, Visual Basic C#, C++ C#, Visual Basic
El idioma de la interfaz de usuario XAML/Código Afeitadora JSX XAML Código Código XAML XAML
Diseñador de experiencias de usuario
(arrastrar y colocar)
No está soportado No está soportado No está soportado Soportado No está soportado Soportado No está soportado Soportado
Depuración de la interfaz de usuario Recarga activa Recarga activa Actualización rápida Recarga activa - Recarga activa Recarga activa Recarga activa
Diseño fluido Soportado Soportado Soportado Se admite (a través de WinUI 2) No está soportado No está soportado Soportado No está soportado
.RED .RED .RED N/D .NET Core y .NET Native N/D .NET y .NET Framework .RED .NET y .NET Framework
SDK para aplicaciones de Windows Compatible (más información) Soportadoa través de MAUI Compatible (más información) No está soportado Soportado Compatible (más información) Soportado Compatible (más información)
Genial para la entrada táctil Soportado Soportado Soportado Soportado No está soportado No está soportado Soportado No está soportado
Multiplataforma Soportado Soportado Soportado No está soportado No está soportado No está soportado No está soportado No está soportado
Aplicaciones de Xbox/HoloLens No está soportado No está soportado Soportado Soportado No está soportado No está soportado No está soportado No está soportado
Espacio aislado (AppContainer) No está soportado No está soportado Soportado Soportado No está soportado No está soportado No está soportado No está soportado
Actualmente se admite Soportado Soportado Soportado Soportado Soportado Soportado Soportado Soportado
Recibir actualizaciones Soportado Soportado Soportado Compatible (seguridad y corrección de errores) Soportado Soportado Soportado Soportado
Hoja de ruta GitHub GitHub GitHub N/D N/D GitHub GitHub GitHub

Obtenga más información sobre cada una de estas opciones:

Pasos siguientes