Información general sobre las opciones del marco de desarrollo
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 crear aplicaciones, como WinUI, 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.
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 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.
WPF
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.
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 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.
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.
Opciones multiplataforma
Si quiere que la aplicación se pueda usar en varias plataformas, considere la posibilidad de usar .NET MAUI, que es una aplicación web progresiva (PWA) o React Native para Windows. Hay muchas otras opciones disponibles (aquí hay una lista de opciones populares), pero estos son algunos 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. React Native para Windows permite escribir aplicaciones que se ejecutan en todos los dispositivos compatibles con Windows 10 y Windows 11 (no solo equipos). 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.
Para obtener más información acerca de .NET MAUI, consulte los siguientes vínculos:
- Documentación de .NET MAUI
- .NET MAUI en GitHub
- Plan de desarrollo del producto .NET MAUI
- Crea aplicación de Windows con .NET MAUI
- Recursos para aprender .NET MAUI
- Serie de vídeos: .NET MAUI para principiantes
- Build 2022: Creación de aplicaciones nativas para cualquier dispositivo con .NET y Visual Studio
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 (RNW) | 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) |
❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
Depuración de la interfaz de usuario | Recarga activa | Recarga activa | Actualización rápida | Recarga activa | - | Recarga activa | Recarga activa | Recarga activa |
Fluent Design | ✅ | ✅ | ✅ | ✅ (a través de WinUI 2) | ❌ | ❌ | ✅ | ❌ |
.NET | .NET | .NET | N/D | .NET Core y .NET Native | N/D | .NET y .NET Framework | .NET | .NET y .NET Framework |
SDK para aplicaciones de Windows | ✅ (más información) | ✅mediante MAUI | ✅ (más información) | ❌ | ✅ | ✅ (más información) | ✅ | ✅ (más información) |
Genial para la entrada táctil | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
Multiplataforma | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Aplicaciones de Xbox/HoloLens | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Espacio aislado (AppContainer) | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Actualmente se admite | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Recibir actualizaciones | ✅ | ✅ | ✅ | ✅ (seguridad y corrección de errores) | ✅ | ✅ | ✅ | ✅ |
Hoja de ruta | GitHub | GitHub | GitHub | N/D | N/D | GitHub | GitHub | GitHub |
Obtenga más información sobre cada una de estas opciones:
- .NET Multi-platform App UI (.NET MAUI)
- Blazor Hybrid de ASP.NET Core
- React Native para Windows (RNW)
- Plataforma universal de Windows (UWP)
- Recomendaciones para elegir entre ATL y MFC
- Windows Forms
- Windows Presentation Foundation (WPF)
- WinUI en el SDK para aplicaciones de Windows (WinUI 3)
Pasos siguientes
- Uso de WinUI para empezar a desarrollar aplicaciones para Windows
WinUI es nuestra plataforma recomendada para aplicaciones de Windows y estos pasos le ayudarán a empezar rápidamente.
- Configuración del entorno de desarrollo en Windows
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.