Con la fine del supporto a Xamarin.Forms e l’arrivo di .NET MAUI come framework ufficiale per lo sviluppo mobile cross-platform, molti sviluppatori si trovano a dover migrare progetti già avviati. Sebbene MAUI rappresenti un’evoluzione naturale, la transizione non è sempre indolore. In questo articolo vediamo gli errori più comuni che si commettono durante la migrazione da Xamarina .NET MAUI e come evitarli.
Sottovalutare la portata della migrazione da Xamain a .NET Maui
Errore: Pensare che basti un “cerca e sostituisci” o aggiornare qualche NuGet.
Perché accade: MAUI riutilizza molti concetti di Xamarin.Forms, ma l’architettura del progetto è cambiata. Ora si lavora con un progetto singolo multi-piattaforma, anziché più progetti (iOS, Android, ecc.) separati.
Soluzione: Studia la nuova struttura del progetto MAUI e considera la migrazione come una rifattorizzazione graduale. Parti da un nuovo progetto .NET MAUI e migra componenti uno alla volta.
Non adattare il codice alla nuova architettura “single project”
Errore: Cercare di mantenere lo stesso layout di file e risorse usato in Xamarin.Forms.
Perché accade: In Xamarin.Forms ogni piattaforma aveva i suoi asset, cartelle, e configurazioni. MAUI centralizza tutto: risorse (font, immagini), stili e configurazioni sono in un unico posto.
Soluzione: Sposta immagini, font e file di configurazione nella cartella Resources
e sfrutta gli attributi [MauiImage]
, [MauiFont]
, ecc. nel file .csproj
.
Ignorare le differenze tra Essentials e MAUI Essentials
Errore: Usare ancora Xamarin.Essentials
invece del nuovo sistema integrato in .NET MAUI.
Perché accade: Molti progetti usano Xamarin.Essentials
per accedere a funzionalità native come GPS, fotocamera, rete, ecc.
Soluzione: Con MAUI, molte di queste API sono già integrate. Non serve più importare Xamarin.Essentials
, basta usare direttamente le API come Geolocation.Default.GetLocationAsync()
o Connectivity.Current
.
Dimenticare di aggiornare i test e i progetti secondari
Errore: Aggiornare solo il progetto principale, lasciando indietro test, librerie condivise o moduli esterni.
Perché accade: Quando si ha fretta, si tende a trascurare i progetti satellite, pensando che non siano impattati.
Soluzione: Controlla che tutti i progetti usino lo stesso target framework (net8.0
o successivi). Se usi test unitari o librerie comuni, verifica compatibilità e aggiorna anche quelle.
Dipendere da librerie NuGet non ancora compatibili
Errore: Usare pacchetti NuGet pensati solo per Xamarin.Forms, non compatibili con .NET MAUI.
Perché accade: Alcune librerie non sono state ancora aggiornate (o non lo saranno mai).
Soluzione: Controlla la compatibilità dei pacchetti NuGet su nuget.org e GitHub. In alcuni casi dovrai sostituirli con alternative moderne o scrivere soluzioni personalizzate.
Non testare adeguatamente su tutte le piattaforme
Errore: Provare l’app solo su Android o solo su iOS.
Perché accade: MAUI è cross-platform, ma ogni piattaforma ha le sue peculiarità: gesture, permessi, rendering nativo, comportamento delle view, ecc.
Soluzione: Testa l’app su tutte le piattaforme target (Android, iOS, Windows, macOS) il prima possibile. Anche se lo sviluppo si concentra su una piattaforma, i bug possono emergere altrove.
Conclusione
La migrazione da Xamarin a .NET MAUI non è un semplice aggiornamento: è l’occasione per ripensare la tua app, modernizzarne la struttura e sfruttare le nuove potenzialità del framework. Evitando questi errori comuni, puoi rendere il processo più fluido e costruire un’app più stabile e manutenibile nel lungo termine.
Se stai pensando di sviluppare un’app, ma non sai come fare, affidati a professionisti che possano guidarti attraverso ogni fase del progetto.
Se hai domande o desideri una consulenza dedicata, contattaci!