malafronte.dev

Back

MAUI 101: Introduzione a .NET MAUIBlur image

.NET MAUI (Multi-platform App UI) è il framework cross-platform di Microsoft per creare app native Android, iOS, macOS e Windows con un unico codebase C# e XAML. In questo articolo vediamo cos'è, come si installa e come si costruisce la prima applicazione.

1. Cos'è .NET MAUI

.NET MAUI rappresenta l'evoluzione moderna di Xamarin.Forms, progettato per consentire la creazione di applicazioni native per Android, iOS, macOS e Windows utilizzando un singolo codebase condiviso. La filosofia alla base di MAUI è massimizzare il riutilizzo del codice mantenendo al contempo l'accesso alle funzionalità specifiche di ogni piattaforma.

L'architettura si basa su un singolo progetto condiviso che può essere compilato per diverse piattaforme target, eliminando la necessità di gestire progetti separati. MAUI sfrutta le moderne funzionalità di .NET: pattern asincroni, LINQ e supporto nativo per architetture ARM64.

Architettura e principi

La struttura architetturale si articola su tre livelli:

  • Livello inferiore: renderer specifici per piattaforma che traducono i controlli astratti MAUI nei controlli nativi (controls mapping)
  • Livello intermedio: controlli cross-platform, layout e pagine definiti in XAML o C#
  • Livello superiore: logica applicativa, servizi e ViewModel secondo il pattern MVVM

Il sistema di Dependency Injection integrato permette di registrare e risolvere servizi in modo trasparente, facilitando architetture pulite e testabili.

Piattaforme supportate

  • Android — API 21 (5.0), target consigliato API 35 (Android 15)
  • iOS — 12.2, target consigliato iOS 18
  • macOS — 12.0 (Monterey), target consigliato macOS 15
  • Windows — 10.0.17763.0, target consigliato Windows 11

2. Installazione dell'ambiente di sviluppo

Requisiti di sistema

Per Windows: Windows 10 1809+ (consigliato Windows 11), 8+ GB RAM (consigliati 16 GB), 25-30 GB di spazio disco. Per l'emulatore Android è necessario il supporto alla virtualizzazione hardware (Intel VT-x o AMD-V).

Visual Studio 2026

L'IDE consigliato è Visual Studio 2026. Durante l'installazione selezionare il workload "Sviluppo di interfacce utente applicazioni multipiattaforma .NET" che include:

  • .NET SDK 10 (LTS)
  • Android SDK (API 35+)
  • Android Emulator
  • .NET MAUI templates
  • XAML designer e Hot Reload

Visual Studio Code

In alternativa, VS Code con le estensioni "C# Dev Kit" e ".NET MAUI" dal marketplace. Richiede setup manuale del SDK .NET e Android SDK.

Verifica dell'installazione

dotnet --version        # deve mostrare 10.x
dotnet workload list    # deve includere "maui"
shell

In caso di problemi:

dotnet workload install maui
dotnet workload update
shell

3. La prima applicazione MAUI

Struttura del progetto

MyMauiApp/
├── Platforms/          # Codice specifico per piattaforma
│   ├── Android/
│   ├── iOS/
│   ├── MacCatalyst/
│   └── Windows/
├── Resources/          # Icone, font, immagini, stili
├── MauiProgram.cs      # Entry point e DI
├── App.xaml / .cs      # Risorse globali
├── AppShell.xaml / .cs # Navigazione
└── MainPage.xaml / .cs # Pagina principale
plaintext

MauiProgram.cs

Il cuore della configurazione:

Esecuzione e Hot Reload

Selezionare il target Android, premere F5. La prima esecuzione richiede più tempo per l'avvio dell'emulatore. Le successive sono rapide grazie all'Hot Reload, che applica le modifiche XAML in tempo reale senza ricompilare.

4. XAML e interfaccia utente

XAML (eXtensible Application Markup Language) è il linguaggio dichiarativo per definire l'UI in MAUI. Separa la definizione visiva dalla logica (code-behind), favorendo manutenibilità e collaborazione.

Una pagina XAML essenziale

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MyMauiApp.MainPage"
             Title="Home">
    <VerticalStackLayout Spacing="10" Padding="20">
        <Label Text="Benvenuto in .NET MAUI!"
               FontSize="18"
               HorizontalOptions="Center" />
        <Button Text="Clicca qui"
                HorizontalOptions="Center"
                Clicked="OnButtonClicked" />
    </VerticalStackLayout>
</ContentPage>
xml

Markup Extensions

Le più usate in MAUI:

  • StaticResource — recupera una risorsa dal dizionario
  • Binding — collega una proprietà del controllo a un ViewModel
  • OnPlatform — fornisce valori diversi in base alla piattaforma

I layout principali

  • VerticalStackLayout / HorizontalStackLayout: pile verticali o orizzontali (semplici e performanti)
  • Grid: struttura a righe e colonne, il più versatile
  • AbsoluteLayout: coordinate assolute per overlay e badge
  • FlexLayout: simile a CSS Flexbox, per layout responsive

Articolo tratto da: MAUI 101 — malafronte.dev

MAUI 101: Introduzione a .NET MAUI
https://malafronte.dev/blog/maui-101
Author Prof. Gennaro Malafronte
Published at 15 giugno 2026
Comment seems to stuck. Try to refresh?✨