¿Qué es .NET MAUI?
Tags: dotnet, maui, dotnetmaui
Published: 2023-02-09 03:17:10

Empecemos mencionando acerca de **Xamarin** y **Xamarin Forms** que son ahora las alternativas "anteriores" para crear aplicaciones móviles Android e iOS.

La evolución de ellos, es **.NET MAUI** cuyo nombre es el acrónimo de **"Multi-platform App UI"** y se trata de un entorno de trabajo **multiplataforma** que permite desarrollar aplicaciones móviles y de escritorio nativas con base en los lenguajes **C#** y **XAML**.

![Diagrama de MAUI](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5fcwlozovivmj9aox4cd.png)

### Ventajas

- La ventaja principal que tiene **.NET MAUI** es la posibilidad que brinda para construir aplicaciones ejecutables en **Android**, **iOS** y **Windows** desde un código único **compartido** y eso lo realiza gracias a que aprovecha el **SDK** de cada plataforma.
- Tiene un motor de diseño específico para el diseño de páginas.
- Tiene una **API Multiplataforma** que permite el acceso a propiedades de los dispositivos nativos como el GPS, acelerómetro entre otros.
- Posibilidad de personalizar los **controladores**, logrando mejoras estéticas en la interfaz de usuario.
- Una librería de páginas que permite crear **flujos de navegación enriquecidos**, como pueden ser los cajones.
- Recarga activa de **.NET**, que hace posible modificar tanto el código XAML como el código fuente administrado durante la ejecución. Luego, permite observar el resultado de estas modificaciones sin necesidad de volver a generar la aplicación.

### ¿Qué nos presenta .NET MAUI?

**.NET MAUI** tiene más de cuarenta diseños y controles diseñados para construir interfaces de usuario que puedan adaptarse tanto a dispositivos móviles como de escritorio en Windows.

Entre todos estos elementos están incluidos todos los heredados desde **Xamarin.Forms** y adicionalmente novedades de: **BlazorWebView**, **Border**, **GraphicsView**, **MenuBar**, **Shadow** y **Window**.

Como valor añadido, también incorpora componentes e incluso aplicaciones al completo de **Blazor** para permitir equiparar la experiencia de los usuarios en ordenadores y terminales móviles.

Gracias a ello, se abren nuevos escenarios en este mundo del diseño de aplicaciones, como puede ser el uso de **Blazor Hybrid** para desarrollar soluciones más interactivas del lado del cliente con **.NET** en una aplicación **ASP.NET Core.**

### ¿Qué diferencia principal hay entre Xamarin.Forms y .NET MAUI?

Como principal punto diferenciador entre **Xamarin.Forms** y **.NET MAUI**, destaca que con esta nueva solución es posible implementar gran parte de la lógica de la aplicación y de su interfaz en una sola base de código.

Es decir, las aplicaciones de **.NET MAUI** se desarrollan y compilan en paquetes de aplicaciones nativas.

En este entorno las aplicaciones se construyen en base a un único proyecto **multiplataforma**, independientemente de que su destino final. Ejemplos de ellos serían Android, iOS, macOS, Windows, o todos ellos.

### ¿Cómo puedo empezar con .NET MAUI?

Debes de asegurarte de disponer de la última versión de **Visual Studio**. En caso de no contar con ella, puedes descargarla **[aquí](https://visualstudio.microsoft.com/downloads/).**

Ejecuta el instalador y asegúrate de elegir **.NET MAUI** y ya estará todo listo para que empieces a crear aplicaciones multiplataforma con esta nueva solución.

### Conclusión

Hoy en día se puso **"de moda"** por así decirlo, la manera de crear aplicaciones móviles con **una sola base de código** para distintas plataformas, por lo que a raíz de ello las grandes empresas como **Microsoft**, están dando un salto enorme al crear este tipo de herramientas para nosotros. 
Para los desarrolladores que ya trabajaban con **Xamarin.Forms**, el lanzamiento de **.NET MAUI** es una gran noticia, ya que les permite seguir desarrollando sus proyectos, incorporando las nuevas funcionalidades e integrándose dentro de .NET.
Siempre dije que no es bueno quedarte solamente con una tecnología para desarrollar aplicaciones móviles, es bueno que sepas **varias** para elegir alguna en determinado proyecto y definitivamente, elegiría **.NET MAUI** para mis siguientes proyecto y tu también **¡hazlo!**