Una delle richieste più gettonate da parte degli sviluppatori in questi ultimi anni è quella di poter sviluppare applicazioni in modo indipendente dalla piattaforma sulle quali l’applicazione dovrà girare.
Molteplici sono i sistemi operativi attualmente in uso da una miriade di utenti per cui l’esigenza di creare applicazioni che possano coprire un numero maggiore possibile di utilizzatori è più che mai attuale.
Si parla di Window, IOS, Android, OsX, Linux.
Per soddisfare questa richiesta nasce .Net MAUI.
Cos’è .NET MAUI
L’acronimo sta per .NET Multi-platform App UI ed è una nuova tecnologia di sviluppo delle applicazioni multi-piattaforma che sta sostituendo Xamarin come strumento principale per lo sviluppo di app multi-piattaforma utilizzando .NET.
In sostanza, .NET MAUI è una evoluzione di Xamarin.Forms, che ha lo stesso obiettivo di consentire agli sviluppatori di creare applicazioni multi-piattaforma utilizzando un singolo codice base, ma con una serie di miglioramenti e nuove funzionalità.
Praticamente si scrive un’applicazione in linguaggio .NET che viene eseguita senza alcuna modifica su una delle piattaforme di destinazione. Per questo motivo, tutta la logica può essere scritta in un linguaggio di sviluppo .NET e l’interfaccia utente può essere definita in un linguaggio .NET a scelta o in XAML.
.NET MAUI è stato presentato per la prima volta durante la conferenza Microsoft Build 2020, che si è tenuta virtualmente dal 19 al 20 maggio 2020. Durante l’evento, Microsoft ha presentato una anteprima di .NET MAUI, spiegando le sue caratteristiche e vantaggi rispetto a Xamarin e ad altre tecnologie di sviluppo delle app multi-piattaforma.
Come Funziona .NET MAUI
.NET MAUI mette insieme le API Android, iOS, macOS e Windows in un’unica API che consente un’esperienza di sviluppo detta WORA (Write-Once Run-Anywhere),
.NET 6 fornisce una serie di framework specifici della piattaforma per la creazione di app: .NET per Android, .NET per iOS, .NET per macOS e libreria dell’interfaccia utente di Windows (WinUI). Questi framework hanno tutti accesso alla stessa libreria di classi base .NET 6 (BCL).
Questa libreria astrae i dettagli della piattaforma sottostante dal tuo codice. Per fornire l’ambiente di esecuzione per il codice, il BCL dipende dal runtime .NET.
Per Android, iOS e macOS, l’ambiente è implementato grazie a Mono, un’implementazione del runtime .NET. Su Windows, WinRT svolge lo stesso ruolo, nonostante sia ottimizzato per la piattaforma Windows.
Sebbene il BCL consenta alle app in esecuzione su piattaforme diverse di condividere una logica di business comune, le varie piattaforme hanno modi diversi di definire l’interfaccia utente per un’app e forniscono modelli diversi per specificare come gli elementi di un’interfaccia utente comunicano e interagiscono.
Le app iOS create utilizzando .NET MAUI sono completamente compilate in AOT da C# nel codice assembly ARM nativo. Le app macOS create utilizzando .NET MAUI utilizzano Mac Catalyst, una soluzione di Apple che porta la tua app iOS, creata con UIKit, sul desktop e la amplia con AppKit aggiuntive e API della piattaforma, secondo necessità. Le app di Windows create con .NET MAUI usano la libreria dell’interfaccia utente di Windows (WinUI) 3 per creare app native che possono essere destinate al desktop di Windows e alla piattaforma UWP (Universal Windows Platform).
Differenze tra .NET MAUI e Xamarin
Come detto .NET MAUI è una evoluzione di Xamarin.Forms e le due architettura hanno diversi punti in comune ma anche diverse differenze.
Architettura modulare: .NET MAUI è stato progettato come un framework modulare, con un’architettura più flessibile e scalabile rispetto a Xamarin. Ciò significa che gli sviluppatori possono scegliere di utilizzare solo le parti di .NET MAUI che sono necessarie per le loro esigenze, migliorando così le prestazioni e riducendo le dimensioni dell’app.
Migliore supporto per l’accessibilità: .NET MAUI offre un miglior supporto per l’accessibilità rispetto a Xamarin, con nuove funzionalità per aiutare gli sviluppatori a creare app che siano accessibili a un pubblico più ampio.
Nuove funzionalità di UI: .NET MAUI include nuove funzionalità di UI, come gli stili basati su CSS, che semplificano la creazione di interfacce utente moderne e flessibili.
Maggiore integrazione con .NET 6: .NET MAUI è stato progettato per funzionare perfettamente con .NET 6, la nuova versione principale del framework .NET, che offre una serie di miglioramenti e nuove funzionalità.
Unificazione della piattaforma: .NET MAUI cerca di unificare la piattaforma mobile con quella desktop, permettendo agli sviluppatori di creare applicazioni per Windows, macOS, iOS, Android e Linux, tutte con lo stesso codice base.
Singolo progetto per diverse piattaforme : Se con Xamarin era necessario utilizzare progetti separati per ogni piattaforma di destinazione con .NET MAUI questo problema non si presenta più perché tutte le piattaforme possono essere facilmente gestite in un unico progetto. Per creare un progetto .NET MAUI, si possono trovare tutte le caratteristiche necessarie, come font, icone dell’applicazione, immagini, stili, risorse grezze e splash screen nella cartella Resources. Mentre MAUI si occuperà del resto, ottimizzandole per i requisiti specifici di ciascuna piattaforma.
In conclusione .NET MAUI è senza dubbio una tecnologia più avanzata e flessibile rispetto a Xamarin, che consente agli sviluppatori di creare applicazioni multi-piattaforma di alta qualità in modo più efficiente e con funzionalità avanzate.
Sono laureato in Ingegneria Informatica presso l’Univertità degli Studi di Lecce (2008).
Attualmente mi occupo di Sviluppo C#.Net / Mono in ambiente Linux
Sviluppo da anni applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram.