Compartir a través de


¿Qué es .NET MAUI?

La interfaz de usuario de aplicaciones multiplataforma de .NET (.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 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 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 tanto la lógica de la aplicación como el diseño de la interfaz de usuario como sea posible en una sola base de código.

Para quién es .NET MAUI

.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.
  • Comparta el diseño y la disposición 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 escribir una vez y ejecutar en cualquier lugar, al tiempo que proporciona un acceso profundo a todos los aspectos de cada una de las plataformas nativas.

.NET 6 o superior proporciona una serie de marcos específicos de la plataforma para crear aplicaciones: .NET para Android, .NET para iOS, .NET para Mac Catalyst y biblioteca de windows UI 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, el entorno está implementado por Mono, una implementación del runtime de .NET. En Windows, Common Language Runtime Common Language Runtime (CLR) 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 diferentes modelos para especificar cómo se comunican e interoperan los elementos de una interfaz de usuario. Puede diseñar 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 Mac Catalyst 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:

diagrama de arquitectura de MAUI de .NET.

En una aplicación MAUI de .NET, se escribe código que interactúa principalmente con los controles .NET MAUI y la capa de API (1). A continuación, esta capa consume directamente las API de plataforma nativas (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 nativas:

  • Las aplicaciones android creadas con .NET MAUI se compilan desde C# en un lenguaje intermedio (IL), que luego se compila 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 por adelantado (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 formas de navegación enriquecida, como menús desplegables.
  • 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 de dispositivos nativos. Estas API permiten que las aplicaciones accedan 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 el dibujo y la pintura de formas e imágenes, operaciones de composición y transformaciones de objetos gráficos.
  • Un único sistema de proyecto que utiliza la orientación a múltiples objetivos para apuntar a Android, iOS, macOS y Windows. Para obtener más información, consulte Proyecto único de .NET MAUI.
  • Recarga en caliente de .NET, para que puedas modificar tanto tu XAML como tu código fuente administrado mientras la aplicación está en ejecución, y luego observar el resultado de tus modificaciones sin necesidad de volver a compilar la aplicación. Para obtener más información, consulte recarga activa de .NET.

API multiplataforma para características de dispositivo

.NET MAUI proporciona API multiplataforma para las características nativas del dispositivo. 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 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 navegador que escuchen una devolución de llamada a una URL específica de una aplicación registrada.

Proyecto único

El único proyecto 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 solo proyecto compartido que pueda tener como destino Android, iOS, macOS y Windows.

El proyecto único de .NET MAUI proporciona una experiencia de desarrollo multiplataforma simplificada y coherente, independientemente de las plataformas que se dirijan. 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.
  • Una selección de destino de depuración simplificada 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, consulte proyecto único de .NET MAUI.

Recarga en caliente

.NET MAUI incluye compatibilidad con la recarga activa de .NET, lo 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 también incluye compatibilidad con la recarga activa de XAML, lo 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 te permite iterar rápidamente en tu interfaz de usuario sin perder tu posición en la aplicación.