¿Qué es .NET MAUI?

.NET Multi-platform App UI (.NET MAUI) es un marco multiplataforma para crear aplicaciones móviles y de escritorio nativas con C# y XAML.

Con .NET MAUI, puede desarrollar aplicaciones que se pueden ejecutar en Android, iOS, macOS y Windows desde una sola base de código compartida.

Plataformas compatibles con .NET MAUI.

.NET MAUI es de código abierto y es la evolución de Xamarin.Forms, extendida desde escenarios móviles a escritorio, con controles de interfaz de usuario recompilados desde cero para el rendimiento y la extensibilidad. Si anteriormente ha usado Xamarin.Forms para compilar interfaces de usuario multiplataforma, observará muchas similitudes con .NET MAUI. Sin embargo, también hay algunas diferencias. Con .NET MAUI, puede crear aplicaciones multiplataforma mediante un solo proyecto, pero puede agregar código fuente y recursos específicos de la plataforma si es necesario. Uno de los objetivos clave de .NET MAUI es permitirle implementar la mayor parte de la lógica de la aplicación y el diseño de la interfaz de usuario en una única base de código.

Quién es .NET MAUI para

.NET MAUI es para desarrolladores que quieren:

  • Escriba aplicaciones multiplataforma en XAML y C#, desde una base de código compartida única en Visual Studio.
  • Compartir el diseño de la interfaz de usuario entre plataformas.
  • Comparta código, pruebas y lógica de negocios entre plataformas.

Funcionamiento de .NET MAUI

.NET MAUI unifica las API de Android, iOS, macOS y Windows en una sola API que permite una experiencia de desarrollador que se ejecuta en cualquier lugar y de solo una escritura, a la vez que proporciona acceso profundo a todos los aspectos de cada plataforma nativa.

.NET 6 o posterior proporciona una serie de marcos específicos de la plataforma para crear aplicaciones: .NET para Android, .NET para iOS, .NET para macOS y biblioteca de interfaz de usuario de Windows 3 (WinUI 3). Todos estos marcos tienen acceso a la misma biblioteca de clases base (BCL) de .NET. Esta biblioteca abstrae los detalles de la plataforma subyacente fuera del código. La BCL depende del entorno de ejecución de .NET para proporcionar el entorno de ejecución para el código. Para Android, iOS y macOS, mono implementa el entorno, una implementación del entorno de ejecución de .NET. En Windows, .NET CoreCLR proporciona el entorno de ejecución.

Aunque la BCL permite que las aplicaciones que se ejecutan en distintas plataformas compartan lógica de negocios común, las distintas plataformas tienen diferentes formas de definir la interfaz de usuario para una aplicación y proporcionan distintos modelos para especificar cómo se comunican e interoperan los elementos de una interfaz de usuario. Puede crear la interfaz de usuario para cada plataforma por separado mediante el marco específico de la plataforma adecuado (.NET para Android, .NET para iOS, .NET para macOS o WinUI 3), pero este enfoque requiere que mantenga una base de código para cada familia individual de dispositivos.

.NET MAUI proporciona un único marco para compilar las interfaces de usuario para aplicaciones móviles y de escritorio. En el diagrama siguiente se muestra una vista de alto nivel de la arquitectura de una aplicación MAUI de .NET:

Diagrama de arquitectura de .NET MAUI.

En una aplicación .NET MAUI, se escribe código que interactúa principalmente con la API de MAUI de .NET (1). Después, .NET MAUI consume directamente las API de plataforma nativa (3). Además, el código de la aplicación puede ejercer directamente las API de plataforma (2), si es necesario.

Las aplicaciones .NET MAUI se pueden escribir en pc o Mac y compilarse en paquetes de aplicaciones nativos:

  • Las aplicaciones Android creadas con .NET MAUI se compilan desde C# en lenguaje intermedio (IL), que luego se compilan Just-In-Time (JIT) en un ensamblado nativo cuando se inicia la aplicación.
  • Las aplicaciones de iOS compiladas con .NET MAUI se compilan completamente de antemano (AOT) desde C# en código de ensamblado arm nativo.
  • Las aplicaciones macOS creadas con .NET MAUI usan Mac Catalyst, una solución de Apple que lleva la aplicación iOS compilada con UIKit al escritorio y la aumenta con api de plataforma y AppKit adicionales según sea necesario.
  • Las aplicaciones de Windows creadas con .NET MAUI usan la biblioteca de interfaz de usuario de Windows 3 (WinUI 3) para crear aplicaciones nativas destinadas al escritorio de Windows. Para obtener más información sobre WinUI 3, consulte Biblioteca de interfaz de usuario de Windows.

Nota

La creación de aplicaciones para iOS y macOS requiere un equipo Mac.

Qué proporciona .NET MAUI

.NET MAUI proporciona una colección de controles que se pueden usar para mostrar datos, iniciar acciones, indicar actividad, mostrar colecciones, seleccionar datos, etc. Además de una colección de controles, .NET MAUI también proporciona:

  • Un motor de diseño elaborado para diseñar páginas.
  • Varios tipos de páginas para crear tipos de navegación enriquecidos, como los cajones.
  • Compatibilidad con el enlace de datos, para patrones de desarrollo más elegantes y fáciles de mantener.
  • La capacidad de personalizar controladores para mejorar la forma en que se presentan los elementos de la interfaz de usuario.
  • API multiplataforma para acceder a las características nativas del dispositivo. Estas API permiten a las aplicaciones acceder a características del dispositivo, como el GPS, el acelerómetro y los estados de la batería y la red. Para obtener más información, consulte API multiplataforma para las características del dispositivo.
  • Funcionalidad de gráficos multiplataforma, que proporciona un lienzo de dibujo que admite formas e imágenes de dibujo y pintura, operaciones de redacción y transformaciones de objetos gráficos.
  • Un único sistema de proyecto que usa varios destinos para dirigirse a Android, iOS, macOS y Windows. Para obtener más información, vea .NET MAUI Single project (Proyecto único de .NET MAUI).
  • Recarga activa de .NET, para que puedas modificar el CÓDIGO FUENTE XAML y el código fuente administrado mientras se ejecuta la aplicación y, a continuación, observar el resultado de tus modificaciones sin volver a generar la aplicación. Para más información, consulte Recarga activa de .NET.

API multiplataforma para características de dispositivo

.NET MAUI proporciona API multiplataforma para características nativas de dispositivos. Algunos ejemplos de funcionalidades proporcionadas por .NET MAUI para acceder a las características del dispositivo incluyen:

  • Acceso a sensores, como el acelerómetro, la brújula y el giroscopio en los dispositivos.
  • Capacidad de comprobar el estado de conectividad de red del dispositivo y detectar cambios.
  • Proporcione información sobre el dispositivo en el que se ejecuta la aplicación.
  • Copie y pegue texto en el Portapapeles del sistema, entre aplicaciones.
  • Elija uno o varios archivos del dispositivo.
  • Almacene los datos de forma segura como pares clave-valor.
  • Use motores de texto a voz integrados para leer texto del dispositivo.
  • Inicie flujos de autenticación basados en explorador que escuchen una devolución de llamada a una dirección URL registrada de aplicación específica.

Proyecto único

El único proyecto de .NET MAUI toma las experiencias de desarrollo específicas de la plataforma que normalmente se encuentran al desarrollar aplicaciones y las abstrae en un único proyecto compartido que pueda tener como destino Android, iOS, macOS y Windows.

Un único proyecto de .NET MAUI proporciona una experiencia de desarrollo multiplataforma simplificada y coherente, independientemente de las plataformas destinadas. El proyecto único de .NET MAUI proporciona las siguientes características:

  • Un único proyecto compartido que pueda tener como destino Android, iOS, macOS y Windows.
  • Selección simplificada de destino de depuración para ejecutar las aplicaciones .NET MAUI.
  • Archivos de recursos compartidos dentro del único proyecto.
  • Un único manifiesto de aplicación que especifica el título, el identificador y la versión de la aplicación.
  • Acceso a las API y herramientas específicas de la plataforma cuando sea necesario.
  • Un único punto de entrada de aplicación multiplataforma.

El proyecto único de .NET MAUI está habilitado con varios destinos y el uso de proyectos de estilo SDK. Para obtener más información sobre el proyecto único de .NET MAUI, vea .NET MAUI single project (Proyecto único de .NET MAUI).

Recarga activa

.NET MAUI incluye compatibilidad con la recarga activa de .NET, lo que le permite modificar el código fuente administrado mientras se ejecuta la aplicación, sin necesidad de pausar o alcanzar manualmente un punto de interrupción. A continuación, las modificaciones de código se pueden aplicar a la aplicación en ejecución sin volver a compilar.

.NET MAUI también incluye compatibilidad con la recarga activa de XAML, que permite guardar los archivos XAML y ver los cambios reflejados en la aplicación en ejecución sin volver a compilar. Además, el estado de navegación y los datos se mantendrán, lo que le permite iterar rápidamente en la interfaz de usuario sin perder su lugar en la aplicación.