Introducción a las opciones de desarrollo de Windows
Artículo
Este artículo contiene la información que necesita para empezar a crear aplicaciones para el entorno del escritorio de Windows.
Windows ofrece una amplia gama de opciones para compilar aplicaciones, entre las que se incluyen C++, .NET y otras tecnologías emergentes, como herramientas de código abierto en WSL y Rust. Con tantas opciones puede ser difícil saber dónde empezar.
La biblioteca de interfaz de usuario de Windows (WinUI) 3 es el más reciente marco de la interfaz de usuario (UI) para aplicaciones de escritorio de Windows, incluidas las aplicaciones administradas que usan C# y .NET y las aplicaciones nativas que usan C++ con la API Win32. Todavía está en fase desarrollo muy activo, por lo que aunque es posible que no pueda cubrir todas sus necesidades en este mismo instante, está mejorando con cada versión.
Al incorporar el Sistema Fluent Design a todas las experiencias, controles y estilos, WinUI proporciona experiencias coherentes, intuitivas y accesibles, ya que usa los patrones de interfaz de usuario más recientes. WinUI 3 está disponible como parte del SDK para aplicaciones de Windows . Windows App SDK proporciona un conjunto unificado de API y herramientas que se pueden usar de manera coherente en cualquier aplicación Win32 de C++ o .NET de C# en un amplio conjunto de versiones de destino del sistema operativo Windows 10.
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 este tipo de aplicación 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, concretamente Direct3D y DirectCompute (ten en cuenta que UWP también ofrece interoperabilidad de DirectX).
Use C++/WinRT para crear aplicaciones de escritorio Win32 modernas con acceso de primera clase a las API de Windows Runtime (WinRT).
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 más información, consulta Modernización de las aplicaciones de escritorio.
WPF es una plataforma bien establecida para las aplicaciones para Windows administradas con acceso a .NET o .NET Framework, y también usa el marcado XAML para separar la interfaz de usuario del código. Esta plataforma está diseñada para aplicaciones de escritorio que requieren una interfaz de usuario sofisticada, personalización de estilos y escenarios de uso intensivo de gráficos. Las aptitudes de desarrollo en WPF son similares a las de WinUI 3, por lo que migrar aplicaciones de WPF a WinUI 3 es más fácil que migrar desde Windows Forms.
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 más información, consulta Modernización de las aplicaciones de escritorio.
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 3, tendrá que reescribir completamente la interfaz de usuario.
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 más información, consulta Modernización de las aplicaciones de escritorio.
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.
UWP es una plataforma muy personalizable que usa el marcado XAML para separar la interfaz de usuario (presentación) del código (lógica de negocios). UWP es adecuada para aplicaciones de escritorio que requieren una interfaz de usuario sofisticada, personalización de estilos y escenarios de uso intensivo de gráficos. UWP también dispone de compatibilidad integrada con el sistema Fluent Design para la experiencia predeterminada de usuario y proporciona acceso a las API de Windows Runtime (WinRT).
No tendrá acceso a las API proporcionadas por el SDK de Aplicaciones para Windows. Para usar el SDK de Aplicaciones para Windows, tendrá que migrar la aplicación para UWP a WinUI 3. Para obtener más información, consulte Migración del SDK de Aplicaciones para Windows.
Opciones multiplataforma
WinUI también sirve de base para las tecnologías multiplataforma que proporcionan excelentes experiencias nativas de Windows mediante varios lenguajes de codificación. .NET MAUI y React Native para Windows aprovechan la eficacia de WinUI en Windows, al mismo tiempo que habilitan 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.
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 3 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 3 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.
React Native es una plataforma de desarrollo que permite crear aplicaciones multiplataforma.
React Native para Windows le ofrece compatibilidad con React Native para los SDK de Windows 10 y Windows 11, lo que le permite usar JavaScript para compilar aplicaciones de Windows nativas para todos los dispositivos compatibles con Windows 10 y Windows 11. Esto incluye equipos, tabletas, 2 en 1, Xbox, dispositivos de realidad mixta, etc.
Con React Native para Windows, escribe la mayor parte o la totalidad del código de la aplicación en JavaScript (o TypeScript) y el marco genera una aplicación XAML nativa para UWP. 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.
Estos son algunos motivos para elegir React Native para Windows:
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, las aplicaciones de React Native para Windows no tienen que limitarse al conjunto de API a las que pueden llamar, ya que el marco 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.
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.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea: https://aka.ms/ContentUserFeedback.