Condividi tramite


Che cos'è .NET MAUI?

.NET Multipiattaforma App UI (.NET MAUI) è un framework multipiattaforma per la creazione di app native per dispositivi mobili e desktop con C# e XAML.

Con .NET MAUI è possibile sviluppare app eseguibili in Android, iOS, macOS e Windows da un'unica codebase condivisa.

piattaforme supportate da .NET MAUI.

.NET MAUI è open source ed è l'evoluzione di Xamarin.Forms, estesa da scenari mobili a desktop, con controlli dell'interfaccia utente ricompilati da zero per prestazioni ed estendibilità. Se in precedenza si è usato Xamarin.Forms per creare interfacce utente multipiattaforma, si noteranno molte analogie con .NET MAUI. Tuttavia, esistono anche alcune differenze. Con .NET MAUI è possibile creare app multipiattaforma usando un singolo progetto, ma è possibile aggiungere risorse e codice sorgente specifici della piattaforma, se necessario. Uno degli obiettivi principali di .NET MAUI consiste nell'implementare la maggior parte possibile della logica dell'app e del layout dell'interfaccia utente in un'unica codebase.

Per chi è .NET MAUI

.NET MAUI è destinato agli sviluppatori che vogliono:

  • Scrivere app multipiattaforma in XAML e C# da un'unica codebase condivisa in Visual Studio.
  • Condividere il layout e la progettazione dell'interfaccia utente tra piattaforme.
  • Condividere codice, test e logica di business tra piattaforme.

Funzionamento di .NET MAUI

.NET MAUI unifica le API Android, iOS, macOS e Windows in un'unica API che consente un'esperienza di sviluppo write-once ovunque, fornendo inoltre un accesso approfondito a ogni aspetto di ogni piattaforma nativa.

.NET 6 o versione successiva offre una serie di framework specifici della piattaforma per la creazione di app: libreria .NET per Android, .NET per iOS, .NET per Mac Catalyst e Windows UI 3 (WinUI 3). Tutti questi framework hanno accesso alla stessa libreria di classi di base .NET ( BCL). Questa libreria astrae i dettagli della piattaforma sottostante dal codice. La libreria di classi di base (BCL) dipende dal runtime .NET per fornire l'ambiente di esecuzione per il codice. Per Android, iOS e macOS, l'ambiente viene implementato da Mono, un'implementazione del runtime .NET. In Windows, .NET Core Common Language Runtime (CLR) fornisce l'ambiente di esecuzione.

Anche se il BCL consente alle app in esecuzione su piattaforme diverse di condividere la logica di business comune, le varie piattaforme hanno diversi modi per definire l'interfaccia utente per un'app e forniscono modelli diversi per specificare come gli elementi di un'interfaccia utente comunicano e interagiscono. È possibile creare l'interfaccia utente per ogni piattaforma separatamente usando il framework specifico della piattaforma appropriato (.NET per Android, .NET per iOS, .NET per Mac Catalyst o WinUI 3), ma questo approccio richiede quindi di mantenere una code-base per ogni singola famiglia di dispositivi.

.NET MAUI offre un singolo framework per la compilazione delle interfacce utente per le app per dispositivi mobili e desktop. Il diagramma seguente mostra una visualizzazione generale dell'architettura di un'app MAUI .NET:

diagramma dell'architettura MAUI di .NET.

In un'app MAUI .NET si scrive codice che interagisce principalmente con i controlli MAUI .NET e il livello API (1). Questo livello usa quindi direttamente le API della piattaforma nativa (3). Inoltre, il codice dell'app può esercitare direttamente le API della piattaforma (2), se necessario.

Le app MAUI .NET possono essere scritte su PC o Mac e compilate in pacchetti di app native:

  • Le app Android costruite con .NET MAUI vengono convertite da C# in un linguaggio intermedio (IL), che viene quindi compilato just-in-time (JIT) in un assembly nativo quando l'app viene avviata.
  • Le app iOS costruite con .NET MAUI sono completamente compilate in anticipo (AOT) da C# in codice assembly ARM nativo.
  • Le app macOS create con .NET MAUI usano Mac Catalyst, una soluzione di Apple che porta l'app iOS compilata con UIKit sul desktop e la aumenta con API AppKit e piattaforma aggiuntive in base alle esigenze.
  • Le app di Windows create con .NET MAUI usano la libreria windows UI 3 (WinUI 3) per creare app native destinate al desktop di Windows. Per altre informazioni su WinUI 3, vedere libreria dell'interfaccia utente di Windows.

Nota

La creazione di app per iOS e macOS richiede un Mac.

Cosa fornisce .NET MAUI

.NET MAUI offre una raccolta di controlli che possono essere usati per visualizzare dati, avviare azioni, indicare attività, visualizzare raccolte, selezionare dati e altro ancora. Oltre a una raccolta di controlli, .NET MAUI fornisce anche:

  • Motore di layout elaborato per la progettazione di pagine.
  • Più tipi di pagina per la creazione di tipi di spostamento avanzati, ad esempio i pannelli.
  • Supporto per il data binding, per modelli di sviluppo più eleganti e gestibili.
  • Possibilità di personalizzare i gestori per migliorare il modo in cui vengono presentati gli elementi dell'interfaccia utente.
  • API multipiattaforma per l'accesso alle funzionalità native dei dispositivi. Queste API consentono alle app di accedere alle funzionalità del dispositivo, ad esempio il GPS, l'accelerometro e gli stati della batteria e della rete. Per altre informazioni, vedere API multipiattaforma per le funzionalità dei dispositivi.
  • Funzionalità grafiche multipiattaforma, che fornisce un'area di disegno che supporta forme e immagini di disegno, operazioni di composizione e trasformazioni di oggetti grafici.
  • Un singolo sistema di progetto che utilizza il multi-targeting per mirare Android, iOS, macOS e Windows. Per altre informazioni, vedere progetto SINGOLO .NET MAUI.
  • Ricaricamento rapido di .NET, in modo da poter modificare sia il codice XAML che il codice sorgente gestito mentre l'app è in esecuzione, quindi osservare il risultato delle modifiche senza ricompilare l'app. Per altre informazioni, vedere ricaricamento rapido di .NET.

API multipiattaforma per le funzionalità dei dispositivi

.NET MAUI offre API multipiattaforma per le funzionalità native dei dispositivi. Esempi di funzionalità fornite da .NET MAUI per l'accesso alle funzionalità del dispositivo includono:

  • Accesso ai sensori, ad esempio l'accelerometro, la bussola e il giroscopio sui dispositivi.
  • Possibilità di controllare lo stato di connettività di rete del dispositivo e rilevare le modifiche.
  • Fornire informazioni sul dispositivo in cui è in esecuzione l'app.
  • Copiare e incollare testo negli Appunti di sistema, tra le app.
  • Selezionare uno o più file dal dispositivo.
  • Archiviare i dati in modo sicuro come coppie chiave/valore.
  • Utilizzare i motori predefiniti di sintesi vocale per leggere il testo dal dispositivo.
  • Avviare flussi di autenticazione basati su browser che ascoltano un callback a un URL specifico registrato per l'app.

Progetto singolo

Il progetto singolo .NET MAUI integra le esperienze di sviluppo specifiche della piattaforma, che si incontrano durante lo sviluppo delle app, e le astrae in un singolo progetto condiviso che possa indirizzare Android, iOS, macOS e Windows.

Il singolo progetto MAUI .NET offre un'esperienza di sviluppo multipiattaforma semplificata e coerente, indipendentemente dalle piattaforme di destinazione. Il progetto singolo .NET MAUI offre le funzionalità seguenti:

  • Un singolo progetto condiviso che può essere destinati a Android, iOS, macOS e Windows.
  • Selezione semplificata della destinazione di debug per l'esecuzione delle app MAUI .NET.
  • File di risorse condivisi all'interno del singolo progetto.
  • Un singolo manifesto dell'app che specifica il titolo, l'ID e la versione dell'app.
  • Accesso alle API e agli strumenti specifici della piattaforma quando necessario.
  • Un singolo punto di ingresso dell'app multipiattaforma.

Il progetto singolo .NET MAUI è abilitato tramite multitargeting e l'uso di progetti in stile SDK. Per ulteriori informazioni sul progetto singolo .NET MAUI, vedere progetto singolo .NET MAUI.

Ricaricamento rapido

.NET MAUI include il supporto per il ricaricamento rapido di .NET, che consente di modificare il codice sorgente gestito mentre l'app è in esecuzione, senza la necessità di sospendere o raggiungere manualmente un punto di interruzione. È quindi possibile applicare le modifiche al codice all'app in esecuzione senza ricompilare.

.NET MAUI include anche il supporto per il ricaricamento rapido XAML, che consente di salvare i file XAML e visualizzare le modifiche riflesse nell'app in esecuzione senza ricompilare. Inoltre, lo stato di navigazione e i dati verranno mantenuti, consentendo a te di iterare rapidamente sull'interfaccia utente senza perdere il tuo punto nell'app.