Introducción a las opciones de desarrollo de aplicaciones
Artículo
Tiempo de lectura: 8 minutos
Gracias.
Este artículo contiene toda la información que necesita para empezar a crear aplicaciones para el entorno del escritorio de Windows.
Si quiere crear una nueva aplicación para Windows 11 o Windows 10, la primera decisión que tomará es el tipo de aplicación que se va a compilar. Las herramientas de desarrollo de Windows y .NET en Visual Studio proporcionan varios tipos diferentes de aplicaciones que se pueden crear, cada uno con sus propios tipos de proyecto de Visual Studio y diferentes puntos fuertes. Cada tipo de aplicación incluye un modelo de aplicación que define el ciclo de vida de esta, un marco de interfaz de usuario predeterminado y el acceso a un conjunto completo de API para usar las características de Windows.
Creación de una aplicación WinUI 3
La biblioteca de interfaz de usuario de Windows (WinUI) 3 es el marco recomendado 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. 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.
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.
React Native es una plataforma de desarrollo de Facebook, 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.