¿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.

Importante

Aunque se ha publicado la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI), Visual Studio compatibilidad con .NET MAUI se encuentra actualmente en versión preliminar. Este contenido está relacionado con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.

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

.NET MAUI supported platforms.

.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 ha usado anteriormente 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 único proyecto, pero puede agregar recursos y código fuente 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 lo más posible en una sola base de código.

Quién .NET MAUI es para

.NET MAUI es para desarrolladores que quieren:

  • Escriba aplicaciones multiplataforma en XAML y C#, desde una sola base de código compartida 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

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

.NET 6 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 Windows UI 3 (WinUI 3). Todos estos marcos tienen acceso a la misma biblioteca de clases base (BCL) de .NET 6. Esta biblioteca abstrae los detalles de la plataforma subyacente 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, Win32 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 general de la arquitectura de una aplicación MAUI de .NET:

.NET MAUI architecture diagram.

En una aplicación MAUI de .NET, se escribe código que interactúa principalmente con la API 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 la plataforma (2), si es necesario.

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

  • Android aplicaciones compiladas con .NET MAUI compiladas desde C# en lenguaje intermedio (IL), que luego se compila Just-In-Time (JIT) en un ensamblado nativo cuando se inicia la aplicación.
  • iOS aplicaciones compiladas con .NET MAUI se compilan completamente por adelantado (AOT) desde C# en código de ensamblado arm nativo.
  • macOS aplicaciones compiladas 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.
  • Windows aplicaciones compiladas con .NET MAUI usan Windows biblioteca de interfaz de usuario 3 (WinUI 3) para crear aplicaciones nativas destinadas al escritorio de Windows. Para obtener más información sobre WinUI 3, consulte Windows biblioteca de interfaz de usuario.

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 Proyecto único de MAUI de .NET.
  • Recarga activa de .NET, para que puedas modificar el CÓDIGO XAML y el código fuente administrado mientras se ejecuta la aplicación y, a continuación, observar el resultado de las modificaciones sin volver a generar la aplicación. Para más información, consulte Recarga activa de .NET.

API multiplataforma para las características del dispositivo

.NET MAUI proporciona API multiplataforma para las características nativas del dispositivo. Entre los ejemplos de funcionalidad que proporciona .NET MAUI para acceder a las características del dispositivo se 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 proyecto único maui de .NET 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.

El único proyecto maui de .NET proporciona una experiencia de desarrollo multiplataforma simplificada y coherente, independientemente de las plataformas que se destinan. El proyecto único maui de .NET proporciona las siguientes características:

  • Un único proyecto compartido que puede tener como destino Android, iOS, macOS y Windows.
  • Selección de destino de depuración simplificada para ejecutar las aplicaciones MAUI de .NET.
  • Archivos de recursos compartidos dentro del único proyecto.
  • Manifiesto de aplicación único 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 en .NET 6. Para obtener más información sobre el proyecto único de .NET MAUI, vea Proyecto único de .NET MAUI.

Recarga activa

.NET MAUI incluye compatibilidad con la recarga activa de .NET, que 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 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.