Introducción a la escritura de aplicaciones de Windows

Completado

¿Qué aspectos vamos a tratar?

En este módulo, va a obtener información sobre cómo escribir la misma aplicación de tres maneras diferentes mediante tres tecnologías distintas de Windows. Va a usar C# pero en combinación con tres marcos de desarrollo: la Plataforma universal de Windows (UWP), Windows Presentation Foundation (WPF) y Windows Forms.

A continuación, presentaremos Windows Template Studio (WTS) y podrá ver rápidamente cómo puede crear el núcleo de una aplicación moderna con el mínimo esfuerzo.

Una historia de tres plataformas

Durante años, la variedad de requisitos y tecnologías ha llevado al desarrollo de muchas maneras de escribir las aplicaciones que se ejecutan en Windows. El objetivo ha sido siempre el mismo: ayudar a los desarrolladores a crear una interfaz de usuario y a generar el código reutilizable esencial, dejando para ellos el trabajo de agregar la funcionalidad exclusiva que permite que sus aplicaciones sean útiles. Nadie quiere escribir código que muestre texto píxel a píxel o dibuje las formas que componen una ventana o un menú. Los desarrolladores desean tener un código coherente, probado y confiable que controle todas estas características que ya están disponibles, y muchas más.

Para ello, Microsoft ha creado muchas herramientas y bibliotecas. Las tres que vamos a revisar en esta ruta de aprendizaje son Windows Forms, WPF y UWP. Las tres ofrecen enfoques similares para compilar aplicaciones básicas.

Diagram that shows some of the development platforms available in Visual Studio, such as UWP, WPF, and Windows Forms.

Plataforma universal de Windows

Windows 10 presentó la Plataforma universal de Windows (UWP), la cual proporciona una plataforma común de aplicaciones en todos los dispositivos que ejecutan Windows. Las API principales de la UWP son las mismas en todos los dispositivos Windows. Si la aplicación usa solo las API principales, se ejecutará en cualquier dispositivo Windows 10, con independencia de si es un equipo de escritorio, una Xbox, unos cascos de realidad mixta u otro dispositivo.

UWP es mejor si el destino de la aplicación es Windows y desea disponer de un acceso sin obstáculos a las API y las características de Windows. UWP también ofrece el resto de las ventajas de una plataforma de aplicaciones moderna. Entre las ventajas se incluye lo siguiente:

  • Un modelo de interfaz de usuario basado en el lenguaje XAML con compatibilidad integrada para adaptarse a los cambios de ppp y tamaño de pantalla.
  • Un modelo de seguridad en el que los usuarios conceden explícitamente a las aplicaciones acceso a las funcionalidades del dispositivo.
  • Un modelo de empaquetado que admite instalaciones limpias y la capacidad de publicar directamente en Microsoft Store.

Windows Presentation Foundation

Windows Presentation Foundation (WPF) es un marco de interfaz de usuario para crear aplicaciones cliente de escritorio. La plataforma de desarrollo WPF admite un amplio conjunto de características de desarrollo de aplicaciones, que incluye:

  • Un modelo de aplicaciones
  • Recursos
  • Controles
  • Gráficos
  • Layout
  • Enlace de datos
  • Documentos
  • Seguridad

Es parte de las bibliotecas específicas de Windows de .NET, por lo que si ya ha creado aplicaciones con .NET mediante ASP.NET Core o Windows Forms, la experiencia de programación le resultará familiar. WPF utiliza XAML para proporcionar un modelo declarativo para la programación de aplicaciones.

WPF y Windows Forms son mejores si desea tener un mayor nivel de productividad de codificación que con C++ y Win32. Dado que las partes que no son de interfaz de usuario de .NET modernas ahora son multiplataforma, también puede compartir código y bibliotecas de .NET con otras plataformas, incluidas macOS y Linux.

Windows Forms

Windows Forms es una interfaz gráfica de usuario de código abierto para .NET, un conjunto estándar de bibliotecas de clases base y API que simplifican las tareas comunes de la aplicación. Cuando se usa un entorno de desarrollo como Visual Studio, se pueden crear aplicaciones Smart Client de Windows Forms que muestran información, solicitan a los usuarios la entrada de datos y se comunican con equipos remotos a través de una red. La plataforma Windows Forms actual se basa en una plataforma de interfaz de usuario de .NET Framework anterior y carece de algunas de las características proporcionadas por WPF y UWP.

Estas tres plataformas son los temas de nuestra atención en este módulo de formación. Sin embargo, antes de empezar, echemos un vistazo rápido a otras dos opciones: WinUI y Win32.

WinUI y el SDK de aplicaciones para Windows

WinUI 3 es el componente de la plataforma de interfaz de usuario nativa que se incluye con el SDK de aplicaciones para Windows (desacoplado de Windows SDK). El SDK de Aplicaciones para Windows proporciona un conjunto unificado de API y herramientas que se pueden usar para crear aplicaciones de escritorio de producción destinadas a Windows 10 y versiones posteriores que se pueden publicar en Microsoft Store.

Nota

En este momento, hay dos generaciones de la biblioteca de interfaz de usuario de Windows (WinUI): WinUI 2 para UWP y WinUI 3 en el SDK de aplicaciones para Windows. Aunque ambas se pueden usar en aplicaciones listas para producción en Windows 10 y versiones posteriores, las dos tienen diferentes objetivos de desarrollo. Consulte Comparación de WinUI 3 y WinUI 2.

No podemos hablar de escritura de aplicaciones de Windows sin mencionar una opción más: Win32.

Win32 (API de Windows) y C++

La API Win32 (en términos más exactos, denominada la API de Windows), permite a las aplicaciones utilizar las características de Windows. Mediante el uso de esta API, puede desarrollar aplicaciones que se ejecuten correctamente en todas las versiones de Windows, al mismo tiempo que se beneficia de las características y funcionalidades únicas de cada versión. Win32 es una buena opción si debe conseguir los niveles más altos de rendimiento o eficacia u obtener acceso a las características nativas del sistema operativo, o si su objetivo son las tecnologías DirectX.

Este enfoque le permite obtener el máximo rendimiento de la aplicación al asumir el control directo sobre la asignación de memoria y las características de CPU orientadas al rendimiento, como las instrucciones AVX o SSE. Es la mejor forma de centrarse en las tecnologías DirectX para el acceso a los gráficos de bajo nivel y de alto rendimiento. Puede compartir código C++ entre todos los tipos de aplicaciones de Windows y con las plataformas que no sean Windows. El inconveniente es que, en comparación con C# y WPF, por ejemplo, la implementación incluso de las características básicas puede suponer mucho trabajo.

La aplicación que va a escribir

La aplicación que va a crear en este módulo es sencilla. Mostrará algo de texto y cambiará algunos colores cuando seleccione un botón.

Animation of the Say hello application running with text that repeatedly changes color.

No va a ganar ningún premio, pero muestra las similitudes y diferencias entre las plataformas de desarrollo.

Cuando este tema ya esté dominado, puede pasar a probar Windows Template Studio. Con WTS, compilará una aplicación con mayores pretensiones.

Screenshot that shows a composite of three different pages of a Weather application: a map, chart, and settings page.

¿Estás listo para empezar?