Información general sobre las opciones del marco de desarrollo
Artículo
Este artículo contiene la información que necesita para empezar a crear aplicaciones para Windows.
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
Se recomienda WinUI y el SDK de Aplicaciones para Windows crear aplicaciones que se ven muy bien y se aprovechan de 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.
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 para Windows proporciona un conjunto unificado de API y herramientas que cualquier aplicación de escritorio puede usar de forma coherente en Windows 11 y niveles inferiores hasta Windows 10, versión 1809.
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 ya ha desarrollado aplicaciones para Windows, pero desea empezar a utilizar el SDK de Aplicaciones para Windows en una aplicación existente, consulte las guías específicas del marco.
React Native para escritorio
React Native es una plataforma de desarrollo que permite crear aplicaciones multiplataforma. React Native para escritorio abarca 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. Esto incluye equipos, tabletas, 2 en 1, Xbox, dispositivos de Mixed Reality, etc.
Con React Native for Desktop, escribes la mayoría o todo el código de la aplicación en JavaScript (o TypeScript) y el marco genera una aplicación XAML para UWP nativa. Si la aplicación tiene que llamar a una API de plataforma, normalmente puede hacerlo a través de uno de los muchos módulos de la comunidad o, si aún no existe un módulo, fácilmente puede escribir 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 y preferencia por JavaScript o TypeScript.
Le gustaría aprovechar las bibliotecas solo de JavaScript en npmjs.com y también muchas bibliotecas nativas.
La aplicación usará los controles nativos, la apariencia visual, las animaciones y los colores y, por tanto, se verá integrada en el lenguaje de diseño que se usa en Windows. Además, React Native para aplicaciones de escritorio no tiene que poner en peligro el conjunto de API a las que pueden llamar, ya que el marco le permite llamar a las API de la 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.
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 preguntas más frecuentes sobre el marco de desarrollo de aplicaciones cliente para obtener más información.
Muchas aplicaciones para Windows se escriben con Win32, Windows Forms o UWP. Cada uno de estos marcos es compatible y seguirá 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. Esto hace que el tipo de aplicación Win32 sea la preferida para las aplicaciones que necesitan el mayor nivel de rendimiento y acceso directo al hardware del sistema.
El uso de Win32 API con C++ permite lograr los niveles más altos de rendimiento y eficiencia y tomar un mayor control de la plataforma de destino con código no administrado de lo que es posible en un entorno 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 Win32 API y C++ que te permitirán crear 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.
Windows Forms es la plataforma original para aplicaciones Windows administradas, con un modelo de interfaz de usuario ligero y acceso a .NET o .NET Framework. Esta plataforma es más adecuada para que los desarrolladores puedan empezar a compilar aplicaciones rápidamente, incluso para aquellos que no están familiarizados con ella. Se trata de una plataforma de desarrollo de aplicaciones rápida, basada en formularios, con una gran colección integrada de controles visuales y de arrastrar y colocar que no son visuales. Windows Forms no usa XAML, por lo que si decide más adelante llevar la aplicación a WinUI, tendrá que reescribir completamente la interfaz de usuario.
Además, ahora puede integrar un entorno de espacio aislado en las aplicaciones Windows Forms 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.
La Plataforma universal de Windows (UWP) proporciona un sistema de tipo común, API y un modelo de aplicación para todos los dispositivos en la Plataforma universal de Windows. No solo puede usar UWP para crear aplicaciones de escritorio para equipos Windows, sino que también es la única plataforma compatible para escribir una única aplicación universal nativa que se ejecuta en Xbox, HoloLens y Surface Hub. Las aplicaciones para UWP pueden ser nativas o administradas.
Nota
La aplicación para UWP existente seguirá funcionando según lo previsto. Sin embargo, para aprovechar las características modernas de WinUI 3 y la SDK de Aplicaciones para Windows se recomienda migrar la aplicación.
No tendrá acceso a las API proporcionadas por el SDK de Aplicaciones para Windows o .NET 6 y versiones posteriores. Para usar el SDK de Aplicaciones para Windows, tendrá que migrar la aplicación para UWP a WinUI y al SDK de Aplicaciones para Windows. Para obtener más información, consulte Migración del SDK de Aplicaciones para Windows.
.NET MAUI aprovecha la eficacia de WinUI en Windows, al mismo tiempo que habilita la ejecución en otros sistemas operativos. 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:
La interfaz de usuario de la aplicación multiplataforma de .NET (MAUI) es un marco multiplataforma de código abierto para crear aplicaciones de Android, iOS, macOS y Windows que aprovechan la interfaz de usuario nativa y los servicios de cada plataforma desde una única 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. Esto le da a sus aplicaciones acceso a todo lo que ofrece WinUI más la capacidad de llegar a otras plataformas.
.NET MAUI para Windows es una excelente opción si:
Quiere compartir tanto código de .NET como sea posible entre aplicaciones móviles y de escritorio.
Quiere enviar la aplicación más allá de Windows a otros destinos de escritorio y móviles con experiencias nativas de la plataforma.
Quiere usar C# o XAML para compilar aplicaciones multiplataforma.
Está usando Blazor para el desarrollo web y quiere incluir todo o parte de su proyecto en una aplicación móvil o de escritorio.
Las aplicaciones web progresivas (PWA) proporcionan acceso a tecnologías web abiertas que ofrecen interoperabilidad multiplataforma. Asimismo, las PWA proporcionan a los usuarios una experiencia similar al uso de una aplicación que pueden personalizar en sus dispositivos. Los PWA son sitios web que se mejoran progresivamente para que funcionen como aplicaciones nativas instaladas en plataformas compatibles (incluido Windows), a la vez que funcionan como sitios web normales en otros navegadores.
Cuando se instalan en Windows, las PWA funcionan igual que otras aplicaciones. Por ejemplo:
Se puede agregar una PWA al menú Inicio.
Se puede anclar Una PWA a la barra de tareas.
Las PWA pueden administrar archivos.
Las PWA se pueden ejecutar cuando el usuario inicia sesión.
Las PWA se pueden enviar a Microsoft Store, donde millones de usuarios de Windows pueden detectarlas e instalarlas fácilmente junto con otras aplicaciones de Windows.
Comparación de características del marco de desarrollo de aplicaciones
Hay una amplia gama de 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 Hybrid
React Native para escritorio
XAML de UWP (Windows.UI.Xaml)
Win32 (MFC o ATL)
Windows Forms
WinUI 3
WPF
Idioma
C#
C#
JavaScript, TypeScript
C#, C++, Visual Basic
C++, Rust
C#, Visual Basic
C#, C++
C#, Visual Basic
El idioma de la interfaz de usuario
XAML/Código
Razor
JSX
XAML
Código
Código
XAML
XAML
Diseñador de experiencias de usuario (arrastrar y colocar)
Windows no es solo ideal para desarrollar aplicaciones que se ejecutan en Windows, también es un entorno eficaz para desarrollar aplicaciones para cualquier plataforma. Obtenga más información sobre las herramientas y opciones disponibles para maximizar el desarrollo.
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de Windows developer
Windows developer es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Los desarrolladores de Windows tienen varias opciones para crear aplicaciones que se ejecutan en Windows. En este módulo se presentan los marcos de interfaz de usuario de Windows que están disponibles para el desarrollo de Windows. También proporciona instrucciones sobre cómo elegir el mejor marco para la aplicación.