Preguntas más frecuentes sobre el desarrollo de Aplicación de Windows

En estas preguntas más frecuentes se proporcionan respuestas a preguntas comunes sobre el desarrollo de aplicaciones de Windows, incluidas instrucciones sobre cómo elegir el marco adecuado para los proyectos. Temas cubiertos:

  • Introducción y el panorama de desarrollo de aplicaciones de Windows.
  • Desarrollo de aplicaciones solo Windows nativas con WinUI 3, Windows Presentation Foundation (WPF) y Windows Forms (WinForms).
  • Windows kit de desarrollo de software (SDK) y SDK de Aplicaciones para Windows.
  • Apuntar a Windows como parte de tu estrategia de desarrollo multiplataforma.
  • Desarrollo de aplicaciones híbridas y web con .NET MAUI, Blazor y ASP.NET Core.
  • Cómo elegir un enfoque al comprender las inversiones de Microsoft.

Windows entorno de desarrollo de aplicaciones

¿Dónde puedo encontrar una visión general sencilla de las tecnologías de desarrollo de Windows?

Para obtener una excelente revisión de las opciones actuales para los desarrolladores de Windows, vea el episodio de Windows Dev Chat, Elegir su plataforma de desarrollo ideal, en el que analizan WinUI, .NET MAUI, React Native, Blazor y Aplicaciones Web Progresivas (PWA).

También puede consultar la overview de las opciones de desarrollo de aplicaciones para desarrolladores de Windows.

¿Por qué sigue siendo crucial el desarrollo de aplicaciones cliente para la transformación digital moderna en la era de los servicios en la nube?

En la era de los servicios en la nube, el desarrollo de aplicaciones de cliente sigue siendo importante para ofrecer interacciones ágiles y significativas en los dispositivos de los usuarios.

Este es el motivo por el que importan las aplicaciones cliente:

  • Alcance del dispositivo: Las aplicaciones cliente permiten llevar la aplicación directamente a los usuarios en sus dispositivos que prefieran.
  • puerta de enlace a Intelligent Services: Las aplicaciones cliente suelen ser las primeras interacciones que los usuarios tienen con los servicios. Ofrecen una interfaz enriquecida e interactiva que le permite mostrar características inteligentes y diferenciar su producto de otros.
  • Escalabilidad con Integración en la Nube: Una aplicación cliente bien integrada puede sincronizarse sin esfuerzo con los servicios en la nube de back-end, lo que permite el acceso a datos en tiempo real y una escalabilidad sin contratiempos a medida que crece la base de usuarios.
  • productividad mejorada y fidelidad del usuario: una aplicación diseñada cuidadosamente puede mejorar la productividad y mantener a los usuarios comprometidos con su producto o servicio a lo largo del tiempo.

Desarrollo de aplicaciones nativas exclusivamente para Windows

¿Qué es el SDK de Aplicaciones para Windows?

El SDK de Aplicaciones para Windows proporciona componentes de servicio independientes para Windows aplicaciones de escritorio, como WinUI, ciclo de vida de la aplicación, ventanas, notificaciones, recursos y API de texto. Admite aplicaciones que se ejecutan en Windows 10, versión 1809 y versiones posteriores, siempre que estén dentro del ciclo de vida de soporte de la versión de Windows y de la versión de SDK de Aplicaciones para Windows.

¿Cuál es la diferencia entre el SDK de Aplicaciones para Windows y el SDK de Windows?

Ambos son kits de desarrollo de software (SDK) que permiten compilar aplicaciones Windows.

El SDK de Aplicaciones para Windows proporciona componentes que se envían independientemente de Windows y funcionan en versiones de Windows compatibles hasta Windows 10, versión 1809. Incluye WinUI y API para el ciclo de vida de la aplicación, ventanas, notificaciones, recursos, texto y otras funcionalidades.

El SDK de Windows proporciona encabezados, bibliotecas, metadatos y herramientas para las API del sistema operativo, como Win32, WinRT, COM, DirectX, dispositivos y funcionalidades de shell.

El SDK de Aplicaciones para Windows no reemplaza el SDK de Windows. Las aplicaciones que adoptan el SDK de Aplicaciones para Windows pueden seguir usando las API del SDK de Windows y las aplicaciones winUI suelen usar ambas.

Estoy creando un nuevo equipo para desarrollar una aplicación solo Windows. ¿Por qué debo elegir desarrollar con un marco de Windows nativo como WinUI, WPF o WinForms?

Estas son algunas razones para elegir un marco nativo de Windows para tu aplicación exclusiva para Windows:

  • Performance: los marcos de Windows nativos están optimizados para aprovechar el hardware de Windows moderno, lo que proporciona experiencias de usuario rápidas y dinámicas.
  • Integration: Windows incluye una amplia variedad de API que permiten experiencias sofisticadas que solo están disponibles en Windows. Los marcos nativos proporcionan una integración profunda con estas características y API.
  • Native user experience: Native frameworks proporcionan una experiencia coherente en Windows dispositivos, lo que garantiza que la aplicación se ve y funciona perfectamente en todas partes.
  • Compatibilidad sin conexión: Los marcos nativos admiten escenarios sin conexión, lo que permite que las aplicaciones funcionen incluso sin conectividad a Internet.
  • Compatibilidad y herramientas: Microsoft mantiene los marcos nativos y proporciona SDK actuales, documentación, herramientas de depuración y ejemplos.
Con qué marco debo usar para aprovechar las inversiones más recientes de Microsoft en el desarrollo de aplicaciones Windows?

Si está desarrollando una nueva aplicación exclusiva para Windows, recomendamos usar WinUI. WinUI es el marco de interfaz de usuario nativo más reciente para Windows desarrollo de aplicaciones y está diseñado para funcionar en una amplia gama de dispositivos Windows. Proporciona un marco de interfaz de usuario moderno y flexible para crear aplicaciones de Windows visualmente atractivas e interactivas. WinUI forma parte del SDK de Aplicaciones para Windows y funciona mejor con las versiones más recientes de Windows.

¿Puedo usar SDK de Aplicaciones para Windows / WinUI en mi aplicación de Windows existente?

Tenga en cuenta que WinUI (un marco de interfaz de usuario) se incluye con el SDK de Aplicaciones para Windows (un marco de desarrollo de plataforma Windows).

Puedes migrar la interfaz de usuario de una aplicación a WinUI o usar islas XAML de WinUI para hospedar controles SDK de Aplicaciones para Windows en un host de escritorio existente compatible. Las islas XAML del sistema heredadas hospedan controles XAML para UWP y usan diferentes API.

Los elementos del SDK de Aplicaciones para Windows a menudo se pueden usar en aplicaciones de escritorio, en función de cómo se creó la aplicación existente. Las aplicaciones para UWP no son compatibles con SDK de Aplicaciones para Windows.

Esto significa que WPF/MFC/WinForms las aplicaciones pueden usar SDK de Aplicaciones para Windows API que no están relacionadas con WinUI. Entre los ejemplos de estas API se incluyen: AppLifecycle, Windowing y Toast Notifications.

Consulte Use el SDK de Aplicaciones para Windows en un proyecto existente para obtener más información.

Do Necesito usar Visual Studio para compilar aplicaciones WinUI?

No. Las compilaciones XAML de WinUI usan MSBuild, pero puedes compilar con el SDK de .NET y las plantillas de WinUI actuales desde la línea de comandos en otro editor. Vea la ruta de .NET y de la línea de comandos.

Visual Studio 2026 proporciona la experiencia más completa de edición, depuración, generación de perfiles y Recarga activa XAML. Use el flujo de trabajo que coincida con los requisitos de herramientas.

Obtención de un error "No se puede cargar el archivo DLL 'Microsoft.ui.xaml.dll'" al ejecutar mi aplicación. ¿Cómo lo arreglo?

Este error suele producirse en unpackaged escenarios de aplicación en los que el entorno de ejecución de SDK de Aplicaciones para Windows no se ha instalado en el equipo. Pruebe lo siguiente:

  • Si está ejecutando una aplicación packaged (el valor predeterminado recomendado), asegúrese de que está iniciando a través de Visual Studio con el MsixPackage perfil de inicio seleccionado (no el perfil ejecutable sin formato). El paso de empaquetado MSIX instala los componentes de tiempo de ejecución necesarios.
  • Si ejecuta una aplicación sin empaquetar dependiente del entorno de ejecución, instale el entorno de ejecución correspondiente de SDK de Aplicaciones para Windows. Una implementación independiente incluye sus dependencias de SDK de Aplicaciones para Windows.
  • Confirme que el proyecto coincide con el modelo de implementación. Para una aplicación .NET normal sin empaquetar, la configuración <WindowsPackageType>None</WindowsPackageType> habilita SDK de Aplicaciones para Windows inicialización automática en tiempo de ejecución. Use la API del bootstrapper directamente solo cuando necesite un control explícito sobre la inicialización de dependencias dinámicas.

Consulte Deploy apps that use the SDK de Aplicaciones para Windows para obtener más información sobre los requisitos de implementación.

¿Cuál es la diferencia entre WinUI 3 y WinUI 2 para UWP?

WinUI (anteriormente denominado WinUI 3) es el marco de interfaz de usuario nativo más reciente para el desarrollo de aplicaciones de Windows. Proporciona un marco de interfaz de usuario moderno y flexible para crear aplicaciones de Windows visualmente atractivas e interactivas. WinUI forma parte del SDK de Aplicaciones para Windows y funciona mejor con las versiones más recientes de Windows.

WinUI para UWP (anteriormente conocido como WinUI 2) es un conjunto de controles y estilos de interfaz de usuario creados sobre UWP. Proporciona una apariencia moderna para aplicaciones para UWP y está diseñada para Windows 10.

Cuando construyo una aplicación usando SDK de Aplicaciones para Windows y WinUI, ¿estoy construyendo una "aplicación WinUI"?

Sí: "Aplicación WinUI" es el término recomendado. Las aplicaciones WinUI se conocen como "aplicaciones WinUI" porque WinUI para UWP no es un tipo de aplicación, sino un conjunto de componentes usados en aplicaciones para UWP.

¿Puedo actualizar incrementalmente mi aplicación para UWP con WinUI para controles de UWP a WinUI reemplazando gradualmente WinUI para componentes de UWP por componentes de WinUI?

No. SDK de Aplicaciones para Windows no se pueden usar en aplicaciones para UWP y WinUI para UWP no se puede mezclar con WinUI. Consulta Migrate de UWP a la SDK de Aplicaciones para Windows.

¿Qué tan difícil es migrar una aplicación para UWP a WinUI?

La migración de componentes de una interfaz de usuario suele ser sencilla (para C# y C++/WinRT). De lo contrario, el costo de la migración depende principalmente de:

  1. Archivo del proyecto y personalización de MSBuild: El esfuerzo de migración varía en función del uso avanzado de MSBuild.
  2. Migración de API de .NET: las aplicaciones para UWP que usan .NET Native pueden pasar a una versión de .NET compatible actualmente con AOT nativo. Esta modernización es independiente de migrar la interfaz de usuario a WinUI.
  3. Bibliotecas de componentes de interfaz de usuario: Las bibliotecas deben tener versiones destinadas a WinUI.
  4. Si la aplicación para UWP está escrita en el C++/CX reemplazado ahora, se requiere cierta portabilidad de código fuente. Consulte Migrar a C++/WinRT desde C++/CX.

Para obtener más información, consulta Migrate de UWP a la SDK de Aplicaciones para Windows.

Si tengo una aplicación para UWP existente en la Tienda, ¿puedo publicar una nueva aplicación WinUI empaquetada con los mismos identificadores?

Sí, las aplicaciones actualizadas se pueden publicar sin actualizar la identidad de la aplicación. Los usuarios de la versión anterior se actualizarán a la nueva versión. Esto solo se aplica a las aplicaciones de escritorio. Xbox, HoloLens y aplicaciones de Surface Hub no se pueden migrar a WinUI.

¿Cómo puedo empaquetar/distribuir mi aplicación WinUI?

Consulte Introducción a la implementación.

¿Dónde puedo encontrar SDK de Aplicaciones para Windows guía de migración?

Consulta Migrate de UWP a la SDK de Aplicaciones para Windows.

¿Es necesario usar el marcado XAML si quiero usar WinUI?

No. Los controles de la interfaz de usuario se pueden crear en el código. Sin embargo, representar la interfaz de usuario en marcado XAML declarativo proporciona muchas ventajas, incluida una experiencia de desarrollador mejorada.

  • Migración de UWP a WinUI: se pueden reutilizar muchos componentes XAML y de interfaz de usuario, aunque se requieren algunos ajustes de sintaxis.
  • Migración de WPF a WinUI: muchos conceptos se transfieren, pero el conjunto de controles y las API difieren.
¿Visual Studio tiene un entorno de diseño visual o diseñador de interfaz de usuario para WinUI?

Actualmente no. Usa xaml Recarga activa, Árbol visual dinámico, Explorador de propiedades en directo y herramientas en tiempo de ejecución relacionadas para inspeccionar y actualizar XAML mientras se ejecuta la aplicación.

Para ver un tutorial completo de las herramientas de diseño en tiempo de ejecución disponibles para WinUI 3, consulta Herramientas de diseño en tiempo de ejecución XAML para WinUI 3.

Does SDK de Aplicaciones para Windows incluir WinUI?

Sí. WinUI se distribuye como parte del SDK de Aplicaciones para Windows.

Does SDK de Aplicaciones para Windows incluir WinUI para UWP?

No. WinUI para UWP forma parte de la plataforma para UWP.

¿WinUI para UWP y WinUI se basan en la misma tecnología?

No del todo. Aunque WinUI se inició originalmente desde el código base de WinUI para UWP, son tecnologías distintas. Ambos son marcos de interfaz de usuario basados en XAML que funcionan entre .NET y C++, pero WinUI para UWP y WinUI no son compatibles entre sí.

¿Puedo usar WinUI sin usar SDK de Aplicaciones para Windows?

No. WinUI se distribuye como parte del SDK de Aplicaciones para Windows.

¿Puedo usar WinUI en una aplicación sin empaquetar?

Sí. WinUI y muchas API de SDK de Aplicaciones para Windows funcionan en aplicaciones sin empaquetar. Sin embargo, algunas funcionalidades de Windows requieren la identidad del paquete y las aplicaciones sin empaquetar dependientes del marco deben inicializar el entorno de ejecución de SDK de Aplicaciones para Windows. Compare las opciones de Introducción al empaquetado y Características que requieren la identidad del paquete.

¿Cuál es la diferencia entre las islas XAML y WinUI?

WinUI es el marco de interfaz de usuario incluido en el SDK de Aplicaciones para Windows. Las islas XAML son una técnica de hospedaje que permite que una aplicación de escritorio existente coloque contenido XAML junto con la interfaz de usuario desde otro marco.

El término puede hacer referencia a islas XAML del sistema heredadas que hospedan controles XAML de UWP o a islas XAML de WinUI que hospedan controles SDK de Aplicaciones para Windows en hosts de escritorio admitidos. Las API, los espacios de nombres y los requisitos de host difieren.

Si crea una aplicación WinUI, tendrá un aspecto moderno tanto en Windows 11 como en Windows 10?

Sí. La interfaz de usuario de la aplicación heredará los principios de diseño de la interfaz de usuario de Fluent más recientes en todas las versiones compatibles de Windows 11 y Windows 10, hasta la versión 1809, en escenarios empaquetados y sin empaquetar.

¿Puedo usar fondos Mica o Acrílico en aplicaciones integradas con SDK de Aplicaciones para Windows?

Sí. Consulte cómo aplicar Mica o Acrílico en aplicaciones de escritorio para Windows 11.

¿Dónde puedo encontrar ejemplos de WinUI?

Consulte Ejemplo y recursos. Algunos repositorios destacados:

Si ya he invertido mucho en WPF, ¿debo seguir usando WPF o considerar la posibilidad de migrar a WinUI?

Si ya ha invertido mucho en WPF, puede seguir usándolo para las aplicaciones existentes. WPF es un marco estable y maduro que se usa ampliamente para compilar aplicaciones de escritorio Windows.

Usa la actualización de GitHub Copilot para evaluar y actualizar una aplicación WPF de .NET Framework a .NET moderno. Revise el plan generado y valide cada cambio en la aplicación.

Si creo una nueva aplicación de WPF, ¿se verá anticuada en comparación con otras aplicaciones nuevas de Windows?

Al desarrollar una aplicación de WPF con .NET 9 o posterior, puedes asegurarte de que tu aplicación coincida con el aspecto elegante y moderno de Windows 11. El nuevo tema Fluent para WPF presenta una estética contemporánea de Windows 11, con el modo de luz y oscuro integrado y la compatibilidad con el color de énfasis del sistema. Esto moderniza la apariencia de la aplicación y ofrece una experiencia de usuario pulida y cohesiva.

Mi equipo está cómodo creando aplicaciones winForms y se adapta a nuestras necesidades. ¿Deberíamos considerar la posibilidad de migrar a WinUI u otro marco?

Si WinForms satisface sus necesidades y su equipo está cómodo con él, puede seguir usando WinForms para las aplicaciones existentes. WinForms es un marco estable y maduro que se usa ampliamente para el desarrollo de Windows escritorio.

El equipo de WinForms continúa invirtiendo en la plataforma. Algunas áreas actuales de inversión incluyen:

  • Compatibilidad asincrónica con controles comunes
  • Modo oscuro
  • Flexibilidad de diseño
  • Características de seguridad de escritorio, como el acceso al portapapeles

Desarrollo nativo multiplataforma

¿Cuáles son algunas razones para crear aplicaciones nativas multiplataforma destinadas a Windows?

Si tiene como destino usuarios en varias plataformas de sistema operativo, la creación de aplicaciones multiplataforma con .NET MAUI o React Native puede ofrecer varias ventajas:

  • Alcanzar: Las aplicaciones multiplataforma llegan a un público mayor en diferentes dispositivos y sistemas operativos.
  • Reutilización del código: La reutilización del código entre plataformas reduce el tiempo de desarrollo y el costo. La creación de aplicaciones independientes para Windows, Android, iOS y macOS puede ser prohibitivamente costosa.
  • Experiencia coherente del usuario: Los marcos multiplataforma ayudan a proporcionar una apariencia coherente entre plataformas.
  • Integración: Las aplicaciones multiplataforma todavía se pueden integrar con servicios específicos de la plataforma para ofrecer una experiencia completa.
¿Estoy seguro de que las aplicaciones de .NET MAUI se ejecutarán bien en Windows?

Al compilar una aplicación .NET MAUI para Windows, la salida es una aplicación WinUI. Durante el desarrollo, .NET MAUI ofrece una única experiencia de .NET entre plataformas, pero genera código específico de la plataforma en segundo plano. Esto garantiza que .NET MAUI aplicaciones funcionen bien en cada plataforma y ofrecer una experiencia de usuario nativa.

Cómo puede .NET MAUI proporcionar API de dispositivos nativos en todas las plataformas?

.NET MAUI proporciona una experiencia de .NET unificada en Windows, iOS, Android y macOS. Ofrece API multiplataforma para funcionalidades comunes, como almacenamiento, redes y sensores de dispositivo. También puede llamar a API específicas de la plataforma o proporcionar implementaciones especializadas para cada plataforma.

¿Puedo empezar con WinUI y, posteriormente, integrar .NET MAUI si finalmente quiero dirigir escenarios multiplataforma?

No en este momento. Aunque .NET MAUI usa WinUI al ejecutarse en Windows, los equipos que esperan tener como destino varias plataformas deben comenzar con .NET MAUI o React Native para escritorio.

Nuestro equipo tiene sólidas aptitudes de desarrollo de front-end web. ¿Deberíamos considerar el uso de React Native para escritorio?

Es posible que los equipos con experiencia de desarrollo web sólida quieran considerar React Native for Desktop. Incluye React Native para Windows y macOS. Con el enfoque "Learn once, write anywhere", se pueden usar las aptitudes existentes de JavaScript, TypeScript y React para compilar aplicaciones nativas de Windows y macOS.

React Native for Desktop representa la interfaz de usuario (UI) directamente en primitivos nativos, proporcionando rendimiento y capacidades nativas de la plataforma.

Consulte la documentación de React Native for Desktop para empezar.

Are cualquier otro dispositivo de Windows compatible con React Native for Desktop?

Las aplicaciones de React Native se pueden implementar en todos los dispositivos compatibles con Windows 10 y versiones posteriores, incluidos equipos, tabletas, 2 en 1s, Xbox y dispositivos de realidad mixta.

¿Qué debo usar si quiero compilar aplicaciones que funcionan en Windows y Xbox?

Si la aplicación necesita admitir Xbox, HoloLens o IoT, se recomienda UWP. SDK de Aplicaciones para Windows no admite estas plataformas. Para el desarrollo de juegos, usa el Kit de desarrollo de juegos de Microsoft.

¿Qué debo usar si quiero compilar aplicaciones que funcionan en Windows y Surface Hub?

Si el destino es Windows y Surface Hub, se recomienda UWP.

Desarrollo híbrido y web

¿Qué son las aplicaciones híbridas y por qué debo considerar la creación de una?

Las aplicaciones híbridas combinan lo mejor del desarrollo de aplicaciones web y nativas. Su núcleo se basa en tecnologías web como HTML, CSS y JavaScript, y está envuelto en un contenedor nativo que proporciona acceso a ciertas características nativas de la plataforma y hardware. También se pueden distribuir a través de tiendas de aplicaciones.

La principal ventaja es que las aplicaciones híbridas permiten crear una sola aplicación que se puede ejecutar en varias plataformas nativas y en la web, lo que reduce el tiempo de desarrollo y el costo. Entre los ejemplos de plataformas de desarrollo de aplicaciones híbridas se incluyen:

  • Electron para aplicaciones de escritorio
  • Ionic para aplicaciones móviles
  • .NET MAUI Blazor Hybrid para aplicaciones multiplataforma
¿Cómo construir aplicaciones web progresivas que se sientan nativas (las PWA) en Windows?

Consulte Desarrollo web en Windows y Descripción general de las aplicaciones web progresivas.

¿Qué es una aplicación híbrida de Blazor .NET MAUI?

Con .NET MAUI, las aplicaciones Blazor se pueden ejecutar de forma nativa en Windows, iOS, Android y macOS. Esto le permite crear aplicaciones cliente híbridas que combinen los componentes blazor y .NET MAUI en una sola aplicación cliente nativa, con acceso completo a las funcionalidades de la plataforma nativa.

Obtenga más información en ASP.NET Core Blazor Hybrid.

¿Los componentes web de una aplicación híbrida de .NET MAUI deben crearse con Blazor?

No. A partir de .NET 9, .NET MAUI incluye un control HybridWebView que permite hospedar otras interfaces de usuario basadas en JavaScript dentro de una aplicación nativa.

Esto permite hospedar angular, React, Vue u otras aplicaciones HTML/JavaScript dentro de una aplicación de .NET MAUI. El control híbrido proporciona interoperabilidad entre C# y JavaScript, por lo que el código de C# puede llamar a funciones de JavaScript y viceversa.

¿Puede algún otro tipo de aplicación nativa hospedar componentes híbridos de Blazor?

Sí. WPF y aplicaciones winForms también pueden hospedar componentes híbridos de Blazor, lo que permite agregar la interfaz de usuario web moderna a las aplicaciones existentes. Esto no se admite para aplicaciones de WPF o WinForms basadas en .NET Framework.

¿Necesita mi aplicación completa ser híbrida o puedo combinar componentes nativos e híbridos?

Los componentes nativos e híbridos se pueden mezclar dentro de una aplicación. Por ejemplo, el núcleo de una aplicación se puede compilar con componentes de .NET MAUI, mientras que los componentes híbridos proporcionan funcionalidad adicional. Esto permite combinar el rendimiento y las funcionalidades de los componentes nativos con la flexibilidad y la rentabilidad de los componentes híbridos.

¿Cuáles son mis opciones para crear aplicaciones web basadas en .NET que parecen excelentes en exploradores modernos en Windows?

Web apps ofrecen el alcance más amplio de cualquier plataforma de aplicaciones cliente. Entre las opciones para crear hermosas aplicaciones web .NET se incluyen:

  • Las aplicaciones de ASP.NET Core con Razor Pages
  • aplicaciones de ASP.NET Core MVC
  • Aplicaciones ASP.NET Core Blazor, con opciones de modelo de hospedaje.
    • WebAssembly de Blazor
    • Blazor Server

Los modelos de hospedaje de Blazor ahora se pueden configurar en el nivel de componente, lo que permite escenarios como hospedar un componente WebAssembly de Blazor dentro de una aplicación blazor Server.

Consulte la documentación ASP.NET Core para obtener más información.

Elección de un enfoque y comprensión de las inversiones de Microsoft

¡Hay tantas opciones de frameworks para desarrollar aplicaciones para Windows! ¿Cómo decidir?

Windows es una plataforma abierta que admite muchas tecnologías. Estos son algunos criterios que pueden ayudarle a elegir una plataforma:

  • ¿Está creando Windows primero o multiplataforma?
  • ¿Qué lenguajes o aptitudes ya tiene: .NET, JavaScript, otra cosa?
  • ¿Necesita acceso a las API específicas de Windows?
  • ¿Qué funcionalidades del marco se ajustan mejor a los requisitos de la aplicación?
  • Consulte esta tabla para obtener más factores de comparación.

Para muchas aplicaciones empresariales, los equipos suelen elegir en función de las aptitudes existentes y de lo que el equipo es más cómodo usar.

¿Cómo puedo elegir el mejor enfoque de desarrollo para mi aplicación web?

Tenga en cuenta lo siguiente al elegir un enfoque de desarrollo para la aplicación web:

  • Blazor se recomienda para crear aplicaciones web de front-end con .NET. Le permite crear tanto el front-end como el back-end mediante .NET, ahorrar tiempo y costo, y es especialmente bueno para las aplicaciones empresariales.
  • Las aplicaciones web de JavaScript siguen teniendo sentido si desea aprovechar las habilidades existentes de JavaScript o si necesita integrarse con las bibliotecas o marcos de JavaScript establecidos.
  • Las aplicaciones existentes que usan marcos más antiguos, como Web Forms, MVC o Razor Pages, siguen siendo compatibles y se pueden seguir desarrollando y manteniendo.
¿Quién está creando aplicaciones con WinUI hoy?

Muchos clientes están creando con WinUI en la actualidad, incluidos Adobe y Apple:

Microsoft también ha creado muchas aplicaciones WinUI, como Windows 11 Explorador de archivos y la aplicación Fotos.

Who está creando aplicaciones .NET MAUI hoy?

Muchos clientes, incluidos los Microsoft, están creando aplicaciones multiplataforma con .NET MAUI. Por ejemplo, la aplicación móvil Microsoft Azure se compila mediante .NET MAUI.

Consulte más sobre el .NET casos de éxito de clientes.

¿Quién está creando aplicaciones de WPF hoy?

La mayoría de la interfaz de usuario de Microsoft Visual Studio se compila con WPF. El propio IDE Visual Studio es un ejemplo importante de una aplicación de WPF compleja y de alto rendimiento.

¿Quién está creando aplicaciones blazor hoy?

El sistema aéreo FlightPulse de GE Digital usa Blazor para la configuración de back-end de todo lo que ven los pilotos, lo que aporta datos y análisis de sensores directamente a los pilotos para mejorar la seguridad y la eficiencia.

Consulte más Blazor customer stories en el sitio de .NET.

Elección del lenguaje (.NET frente a C++)

¿Debo usar C# o C++ para mi aplicación de Windows?

Use C# (.NET) en la mayoría de los casos. C# ofrece un desarrollo más rápido, seguridad de memoria, bibliotecas enriquecidas y excelentes herramientas. La mayoría de las aplicaciones Windows ( incluidas WinUI 3, WPF, WinForms y aplicaciones de .NET MAUI) se compilan mejor con C#.

Use C++ cuando necesite acceso directo a hardware, sobrecarga mínima en tiempo de ejecución o interoperabilidad con código base de C++ existente. Entre los escenarios comunes de C++ se incluyen motores de juegos (DirectX), controladores, utilidades de nivel de sistema y componentes críticos para el rendimiento.

Factor C# (.NET) C++
Velocidad de desarrollo ✅ Más rápido: memoria administrada, ecosistema enriquecido ⚠️ Más lento: administración manual de recursos
Rendimiento en tiempo de ejecución ✅Excelente con .NET moderno (AOT, Span<T>) ✅ Lo mejor posible: no hay pausas de GC
Seguridad de memoria ✅Recolector de elementos no utilizados ⚠️ Manual: riesgo de fugas y vulnerabilidades
Acceso a la API de Windows ✅ Mediante la proyección de C#/WinRT ✅ Mediante la proyección de C++/WinRT
Compatibilidad con WinUI 3 ✅ Compatibilidad completa ✅ Compatibilidad completa a través de C++/WinRT
Multiplataforma ✅.NET se ejecuta en Windows, Linux, macOS ✅ Con código específico de la plataforma
Más adecuado para Aplicaciones empresariales, CRUD, servicios, aplicaciones con mucha interfaz de usuario Juegos, controladores, herramientas del sistema, baja latencia

También puedes combinar ambos: compilar la aplicación en C# y llamar al código nativo crítico para el rendimiento a través de P/Invoke (CsWin32) o un componente de C++/WinRT.

¿Cómo puedo llamar a las API de Win32 desde C#?

Usa CsWin32, un generador de código fuente que crea signaturas de P/Invoke con seguridad de tipos en tiempo de compilación. Agregue el Microsoft.Windows.CsWin32 paquete NuGet, enumere las API que necesita en un NativeMethods.txt archivo y llámelas a través de una clase generada PInvoke .

CsWin32 reemplaza las declaraciones escritas [DllImport] a mano y funciona en cualquier proyecto de C#: WinUI, WPF, WinForms o consola. Consulte Llamar a las API de Win32 desde una aplicación de Windows de C# (CsWin32) para ver un tutorial paso a paso.

¿Qué es C++/WinRT y cuándo debo usarlo?

C++/WinRT es una proyección estándar del lenguaje C++17 para Windows Runtime API. Úselo al compilar aplicaciones Windows en C++ que consumen o crean API de WinRT. Reemplaza a C++/CX y a la Biblioteca de plantillas de C++ para Windows Runtime (WRL).

Elija C++/WinRT cuando:

  • Está creando una aplicación de WinUI 3 en C++
  • Debe crear componentes de Windows Runtime consumidos por otros lenguajes.
  • Está migrando de C++/CX
¿Qué es C#/WinRT y cuándo lo necesito?

C#/WinRT proporciona compatibilidad con la proyección de WinRT para C#. En la mayoría de los casos, no interactúas directamente con ello: las aplicaciones .NET dirigidas a Windows obtienen automáticamente acceso a las API de WinRT a través de identificadores de marcos de destino (TFM). Necesita C#/WinRT explícitamente al crear componentes de Windows Runtime en C# o al generar ensamblados de interoperabilidad para componentes de WinRT de terceros.

Empaquetado, implementación y actualizaciones

¿Cuál es la diferencia entre las aplicaciones empaquetadas, desempaquetadas y empaquetadas con ubicación externa?

Una aplicación empaquetada contiene sus archivos, identidades e información de implementación en un paquete como MSIX. Una aplicación sin empaquetar usa un instalador o un proceso de implementación fuera del sistema de paquetes de Windows y no tiene la identidad del paquete de forma predeterminada. Una aplicación empaquetada con ubicación externa usa un paquete de identidad pequeño mientras conserva los archivos binarios ubicados externamente y su instalador existente y su proceso de actualización.

Consulte Información general sobre el empaquetado para conocer los requisitos y los inconvenientes.

¿Necesito la identidad del paquete?

Depende de las características de Windows que usa la aplicación. La ejecución en segundo plano, las notificaciones push, las extensiones de shell, las asociaciones y algunos escenarios de Windows AI requieren la identidad del paquete. Otras funcionalidades de SDK de Aplicaciones para Windows, incluidas WinUI y notificaciones de aplicaciones locales, pueden funcionar sin ella.

Consulte Características que requieren la identidad del paquete. Si necesita identidad, pero debe conservar un instalador existente, considere la posibilidad de empaquetar con ubicación externa.

¿Cuál es la diferencia entre la implementación independiente y dependiente del marco?

Una aplicación dependiente del entorno usa los paquetes en tiempo de ejecución de SDK de Aplicaciones para Windows instalados por separado en el dispositivo. Esto reduce el tamaño de implementación de la aplicación. Una aplicación autocontenida incluye junto con la aplicación el contenido del paquete de marco de SDK de Aplicaciones para Windows, lo que aumenta el tamaño de la implementación, pero permite que la aplicación dé servicio a esos componentes del marco.

Las API que dependen de paquetes MSIX adicionales, como el paquete Singleton, pueden requerir comprobaciones de implementación o en tiempo de ejecución independientes, incluso en una aplicación independiente. El empaquetado y la implementación en tiempo de ejecución son decisiones independientes. Consulte Información general de la implementación del SDK para aplicaciones de Windows.

¿Se actualizará automáticamente la aplicación WinUI para los usuarios finales?

Una aplicación WinUI se puede entregar a través de la Tienda, un archivo .appinstaller o a través de un paquete MSI o setup.exe existente. La Tienda y AppInstaller admiten actualizaciones automáticas para los usuarios finales que tienen habilitadas las actualizaciones automáticas, pero las aplicaciones MSI/setup.exe deben proporcionar su propio mecanismo de actualización.

¿Puedo usar SDK de Aplicaciones para Windows sin usar MSBuild?

Los proyectos XAML de WinUI requieren MSBuild, pero no es necesario Visual Studio. Puede usar el SDK de .NET y las plantillas de WinUI para ejecutar MSBuild a través de dotnet build desde la línea de comandos. SDK de Aplicaciones para Windows componentes que no usan WinUI también se pueden integrar en proyectos de escritorio compatibles basados en MSBuild.

Inteligencia artificial de Windows

¿Cómo puedo elegir entre las API de IA de Windows, Foundry Local y Windows ML?

Use Windows API de IA para funcionalidades de inteligencia artificial listas para usarse y administradas por Windows. Use Foundry Local para detectar, descargar y ejecutar modelos de lenguaje y voz admitidos localmente. Use Windows ML para ejecutar modelos ONNX personalizados con proveedores de ejecución para hardware de CPU, GPU y NPU disponibles.

Los requisitos de hardware, Windows versión, identidad de paquete, modelo y distribución varían. Compruebe los requisitos actuales de la API o el entorno de ejecución que elija en lugar de asumir que todas las funcionalidades de inteligencia artificial de Windows están disponibles en todos los equipos.

¿Qué debo tener en cuenta antes de enviar una característica asistida por IA?

Defina el uso y las limitaciones previstos de la característica, evalúe la calidad y la seguridad con datos representativos, revele el comportamiento de la inteligencia artificial cuando corresponda, proteja los datos del usuario y proporcione una reserva cuando el modelo o el hardware necesario no estén disponibles. Consulte el desarrollo responsable de IA generativa en Windows.

Rendimiento y optimización

¿Qué puedo hacer que mi aplicación de Windows sea excelente para los usuarios finales?

Consulte Windows desarrollo de aplicaciones: Procedimientos recomendados y Windows información general sobre el rendimiento y los aspectos básicos de las aplicaciones.

Compatibility

Drá que mis usuarios tengan que actualizar Windows para usar mi aplicación winUI?

SDK de Aplicaciones para Windows aplicaciones se pueden ejecutar en ediciones compatibles de Windows 10, versión 1809 y posteriores, pero las API individuales y las características de la aplicación pueden requerir versiones o hardware de Windows más recientes. Para la compatibilidad con producción, el dispositivo debe ejecutar una edición y una versión de Windows que todavía están en soporte técnico, y la aplicación debe usar una versión de SDK de Aplicaciones para Windows compatible con las actualizaciones de mantenimiento actuales. Consulte soporte técnico de SDK de Aplicaciones para Windows y canales de lanzamiento.

¿Puedo dirigirme a Arm64 con mi aplicación WinUI?

Sí. Cree una aplicación nativa de Arm64 para obtener el mejor rendimiento y eficacia. Para un código base de C++ grande con dependencias x64, Arm64EC le permite migrar módulos de forma incremental. Windows 11 en Arm también puede ejecutar muchas aplicaciones x86 y x64 existentes a través de la emulación prisma, pero debe probar el rendimiento y la compatibilidad en dispositivos Arm representativos.

Deprecaciones y migraciones

¿UWP/WinUI para UWP está en desuso?

No. UWP y WinUI para UWP siguen siendo compatibles y reciben correcciones de errores, confiabilidad y seguridad. Sin embargo, WinUI y el SDK de Aplicaciones para Windows son la ruta recomendada para las nuevas aplicaciones de escritorio de uso general Windows y reciben la mayoría de las nuevas inversiones en plataformas.

La compatibilidad con UWP para .NET moderna con AOT nativo está disponible con carácter general y es el tipo de proyecto de UWP de C# predeterminado en Visual Studio 2026. Trasladar una aplicación UWP existente de .NET Native a .NET moderno es un paso de modernización independiente del de migrar su interfaz de usuario a WinUI. Consulta Moderniza tu aplicación UWP con .NET y AOT nativo.

¿Cuándo debo migrar una aplicación UWP o WinUI para UWP a WinUI?

Los desarrolladores de UWP no deben sentirse presionados para migrar si están satisfechos con UWP y su conjunto de características, para muchas aplicaciones, la opción adecuada puede ser permanecer en UWP.

Las aplicaciones que quieran beneficiarse de la plataforma de Windows más reciente y las inversiones de .NET deben considerar la posibilidad de pasar a la SDK de Aplicaciones para Windows. Consulta Migrate de UWP a la SDK de Aplicaciones para Windows.

¿Cuándo *no* debo migrar una aplicación de UWP + WinUI para UWP a WinUI?

Sigue usando UWP si estás compilando para Xbox, Surface Hub o HoloLens.

¿Está WPF en desuso?

No. WPF se admite, se recomienda y sigue recibiendo actualizaciones de características. Consulte la hoja de ruta WPF sobre GitHub.

¿WinForms está en desuso?

No. WinForms se admite y sigue recibiendo actualizaciones de características. Consulte la hoja de ruta Windows Forms sobre GitHub.

¿Está el Windows Runtime (WinRT) en desuso?

No. WinRT es una interfaz binaria de aplicación (ABI) que permite la interoperabilidad entre varios lenguajes. WinRT es la evolución de COM y el SDK de Aplicaciones para Windows proporciona la mayor parte de su funcionalidad a través de las API de WinRT.

Notas de lanzamiento

¿Dónde puedo encontrar notas de versión para SDK de Aplicaciones para Windows?

Las notas de la versión más recientes se pueden encontrar en la página Novedades .