Implementare AI in MAUI.NET

Implementare AI in MAUI.NET

Implementare AI in MAUI.NET: Agenti Intelligenti nel tuo Workflow di Sviluppo

Indice – Implementare AI in MAUI.NET

  1. Cosa sono gli Agenti AI per MAUI.NET e perché interessa ora
  2. Cosa fa il team .NET MAUI con gli agenti: analisi del blog ufficiale e ricerca aggiornata
  3. Requisiti
  4. Installazione passo dopo passo
  5. Prime richieste e test funzionale
  6. Caso d’uso pratico aziendale con codice
  7. Conclusioni ed Innovaformazione

1. Cosa sono gli Agenti AI per MAUI.NET e perché interessa ora

Un agente AI non è un chatbot glorificato. È un sistema autonomo che riceve un obiettivo, pianifica una sequenza di azioni, esegue strumenti (build, test, query su API, accesso al filesystem), valuta i risultati e si autocorregge fino a raggiungere il goal. Nel contesto MAUI.NET, questo significa delegare all’agente operazioni che oggi ti costano ore: riprodurre un bug su piattaforma specifica, scrivere test Appium da zero, esplorare quattro strategie di fix in parallelo e scegliere quella che passa la suite completa.

Il momento è adesso per due ragioni concrete. Prima: Microsoft ha rilasciato a inizio aprile 2026 la versione 1.0 del Microsoft Agent Framework, il successore stabile di Semantic Kernel e AutoGen, con API stabili e impegno al supporto a lungo termine. Seconda: il team .NET MAUI ha già integrato agenti specializzati nel proprio repository pubblico, documentati, open source, pronti da clonare e usare nel tuo progetto aziendale con pochissima configurazione. Se aspetti che la tecnologia “maturi ancora un po'”, hai già mancato il treno.

Il punto critico per uno sviluppatore senior .NET è che questi agenti parlano la tua lingua: Dependency Injection, OpenTelemetry, lo stesso pattern di configurazione che conosci da ASP.NET Core. Non c’è una nuova astrazione da imparare da zero — c’è una libreria da aggiungere al tuo MauiProgram.cs.

2. Cosa fa il team .NET MAUI con gli agenti: analisi del blog ufficiale e ricerca aggiornata

Il post pubblicato a marzo 2026 sul blog ufficiale .NET (scritto con Syncfusion, partner Microsoft) mostra un sistema di agenti e skill composabili integrato direttamente nel repository dotnet/maui. Non è un proof of concept: è in produzione sul progetto stesso.

Il problema di partenza era misurabile. Riprodurre un issue da zero richiedeva 30-60 minuti; l’analisi della causa radice su handler multipiattaforma toccava le 3 ore; scrivere test completi ne portava via altre 2. Per i contributori esterni al team, gente che magari non conosce la struttura del repo, il costo saliva facilmente a una giornata intera per una singola PR.

La soluzione: tre agenti principali con skill modulari.

pr-review è l’agente più completo. Lavora in quattro fasi: analisi preliminare dell’issue (legge GitHub, individua i componenti toccati, mappa le considerazioni specifiche per piattaforma), verifica che esistano test che falliscono senza la fix, esecuzione della fase try-fix con fino a 4 modelli AI distinti in sequenza, generazione di un report comparativo. La sequenzialità non è pigrizia — è vincolo tecnico: una sola sessione Appium può controllare il device alla volta, e i file sorgente sono condivisi.

write-tests-agent è il point of entry consigliato prima di invocare pr-review. Analizza l’issue e decide autonomamente se servono test Appium (UI Interaction Bug), test XAML con i tre inflator (Runtime, XamlC, SourceGen), o entrambi. Il suo output include la verifica che i test falliscano senza la fix — altrimenti il test è inutile.

sandbox-agent complementa l’automazione con validazione manuale controllata dall’AI: crea scenari nel progetto Sandbox, lancia il deploy su simulatori iOS/Android/Mac Catalyst e genera script Appium per l’interazione automatizzata.

I numeri dichiarati sono seri. Il team Syncfusion riporta una riduzione del 50-70% del tempo per issue, con la copertura da test sulle PR salita dal 60% al 95%+ e il tasso di fix corrette al primo tentativo che passa dal 50% all’80%.

Il quadro si allarga ulteriormente a livello di ecosistema. Semantic Kernel — la base su cui si costruisce la logica degli agenti — ha superato i 27.000 star su GitHub e la sua architettura è stata descritta da chi lo usa come perfettamente allineata ai pattern .NET: stessa DI, stesso modo di registrare i servizi, integrazione nativa con OpenTelemetry. Esiste già una collezione pubblica di 37 skill MAUI (repo davidortinau/maui-skills) progettate specificamente per GitHub Copilot CLI e Claude Code. Il pattern è consolidato.

3. Requisiti su come Implementare AI in MAUI.NET

Per replicare il workflow sul tuo progetto aziendale ti servono:

  • .NET 9 SDK (o .NET 10 se sei già in produzione su quella release) con workload MAUI installato
  • GitHub Copilot con abbonamento attivo — almeno piano Individual; per i team è necessario Business o Enterprise per condividere gli agenti via .github/agents/
  • GitHub CLI (gh) versione 2.90.0 o superiore, necessaria per il comando gh skill install
  • Node.js 18+ richiesto da GitHub Copilot CLI
  • Accesso alle API di almeno un provider LLM: Azure OpenAI (consigliato in contesto enterprise per ragioni di data residency), oppure OpenAI direttamente
  • Per i test su device: simulatore iOS (richiede macOS) o emulatore Android configurato, con Appium installato globalmente

Se stai lavorando su un progetto già esistente, l’impatto sulla struttura del repo è minimo: si aggiunge una cartella .github/ con le definizioni degli agenti e delle skill in Markdown — zero dipendenze nel csproj.

4. Installazione passo dopo passo – Implementare AI in MAUI.NET

Passo 1 — Installa GitHub CLI e Copilot CLI

# Su Windows (winget)
winget install --id GitHub.cli

# Su macOS
brew install gh

# Autenticazione
gh auth login

# Installa l'estensione Copilot CLI
gh extension install github/gh-copilot

Passo 2 — Clona il repository MAUI (o configura il tuo)

Se vuoi usare gli agenti direttamente sul repository ufficiale:

git clone https://github.com/dotnet/maui.git
cd maui

Se vuoi portare gli agenti nel tuo progetto aziendale, crea la struttura manualmente:

mkdir -p .github/agents .github/skills

Passo 3 — Installa le skill MAUI

# Installa la collezione di skill MAUI dal repository di David Ortinau
gh skill install davidortinau/maui-skills

# Verifica le skill disponibili
gh copilot skills list

Passo 4 — Configura il modello LLM

Crea un file .github/copilot-instructions.md nella root del progetto per istruire l’agente sul contesto:

# Istruzioni per GitHub Copilot

Questo è un progetto .NET MAUI targeting Android, iOS e Windows.
Il pattern architetturale è MVVM con CommunityToolkit.Mvvm.
I test UI usano Appium. I test unitari usano xUnit.
Per ogni fix: scrivi prima il test, poi implementa la soluzione.

Passo 5 — Verifica l’installazione

# Avvia una sessione interattiva con Copilot CLI
gh copilot suggest "Elenca le skill MAUI disponibili nel progetto"

Se la risposta include riferimenti a pr-review, write-tests-agent e alle skill caricate da maui-skills, l’installazione è corretta.

5. Prime richieste e test funzionale – Implementare AI in MAUI.NET

La prima cosa da fare è invocare l’agente su un issue reale nel tuo tracker, anche uno vecchio risolto — così verifichi la risposta senza rischiare nulla in produzione.

# Sessione interattiva nel terminale, dalla root del repo
gh copilot chat

# Prompt di test: chiedi all'agente di analizzare un issue specifico
> Analizza il GitHub issue #1234. Identifica i componenti MAUI coinvolti
  e suggerisci il tipo di test da scrivere prima di procedere con la fix.

L’agente risponderà con un’analisi strutturata: componenti coinvolti (es. CollectionViewHandler, Items2/Android), tipo di test consigliato (Appium o XAML unit test), e un piano di lavoro in fasi. Se la risposta è generica e non menziona componenti specifici del tuo codice, usa la referenza @ per puntare ai file rilevanti:

> @src/Controls/CollectionView/CollectionView.cs
  Questo file ha un bug quando ItemsSource viene aggiornato durante lo scroll.
  Qual è il test Appium minimo per riprodurlo?

Questo secondo approccio è quello che userai quotidianamente sui progetti aziendali, dove non esiste un issue tracker GitHub pubblico ma hai comunque codice e bug report interni.

6. Caso d’uso pratico aziendale con codice

Scenario: un’app MAUI per la gestione degli ordini di un’azienda manifatturiera. L’app mostra una CollectionView con gli ordini in stato “In lavorazione”. Gli utenti segnalano che scorrendo rapidamente la lista, alcuni elementi spariscono o si duplicano su Android. Il bug è riproducibile ma non sistematico — classico race condition nel recycling delle view.

Workflow con agenti:

Step 1 — Scrivi il test prima della fix

gh copilot chat
> Write tests for the issue: CollectionView items disappear on Android
  when scrolling rapidly through a list of Order objects bound via MVVM.
  The ItemsSource is an ObservableCollection<Order> updated from a background thread.

L’agente genera i file di test. Ecco la struttura prodotta (semplificata per l’articolo):

// File: TestCases.Shared.Tests/Tests/Issues/OrderListScrollingTest.cs
// Test Appium per verificare che gli elementi non spariscano durante lo scroll rapido

using NUnit.Framework;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;

[TestFixture]
public class OrderListScrollingTest : BaseTest
{
    [Test]
    [Category("CollectionView")]
    [Platform("Android")]
    public async Task OrderItems_ShouldNotDisappear_DuringRapidScroll()
    {
        // Naviga alla pagina ordini e verifica il conteggio iniziale
        var ordersPage = await NavigateToOrdersAsync();
        var initialCount = await ordersPage.GetVisibleItemCountAsync();
        Assert.That(initialCount, Is.GreaterThan(0), "La lista non ha elementi iniziali");

        // Simula scroll rapido verso il basso e poi verso l'alto
        await ordersPage.ScrollRapidlyAsync(direction: ScrollDirection.Down, steps: 10);
        await ordersPage.ScrollRapidlyAsync(direction: ScrollDirection.Up, steps: 10);

        // Verifica che il conteggio degli elementi visibili sia stabile
        var finalCount = await ordersPage.GetVisibleItemCountAsync();
        Assert.That(finalCount, Is.EqualTo(initialCount),
            "Elementi spariti dopo lo scroll: race condition nel recycling");
    }
}
// File: TestCases.HostApp/Issues/OrderListPage.xaml.cs
// Pagina di test con AutomationId per Appium

public partial class OrderListPage : ContentPage
{
    public OrderListPage()
    {
        InitializeComponent();
        // AutomationId necessario per il localizzatore Appium
        OrdersCollection.AutomationId = "OrdersCollectionView";
        BindingContext = new OrderListViewModel();
    }
}

Step 2 — Verifica che il test fallisca senza fix

> Verify that the test OrderItems_ShouldNotDisappear_DuringRapidScroll
  fails against the current codebase. Mode 1: failure only.

L’agente esegue la suite e conferma il fallimento — la prova che il test è valido e cattura effettivamente il bug.

Step 3 — Chiedi la fix

> Fix the race condition causing CollectionView items to disappear on Android
  during rapid scrolling. The issue is in the MVVM binding with ObservableCollection
  updated from a background thread. Try a handler-level approach first.

L’agente invoca try-fix con più modelli. Il fix prodotto in questo scenario riguarda il marshal dell’aggiornamento dell’ObservableCollection sul thread principale:

// File: ViewModels/OrderListViewModel.cs
// Fix: aggiornamento dell'ObservableCollection sempre sul thread UI

using CommunityToolkit.Mvvm.ComponentModel;
using System.Collections.ObjectModel;

public partial class OrderListViewModel : ObservableObject
{
    [ObservableProperty]
    private ObservableCollection<Order> orders = new();

    // Servizio che riceve aggiornamenti da WebSocket o polling
    private readonly IOrderUpdateService _updateService;

    public OrderListViewModel(IOrderUpdateService updateService)
    {
        _updateService = updateService;
        // Sottoscrivi agli aggiornamenti e forza il dispatch sul thread UI
        _updateService.OrderUpdated += OnOrderUpdated;
    }

    private void OnOrderUpdated(Order updatedOrder)
    {
        // PRIMA (causa del bug): aggiornamento diretto dal thread in background
        // Orders.Add(updatedOrder); // ← race condition con il renderer Android

        // DOPO (fix): dispatch esplicito sul MainThread
        MainThread.BeginInvokeOnMainThread(() =>
        {
            var existing = Orders.FirstOrDefault(o => o.Id == updatedOrder.Id);
            if (existing is not null)
            {
                var index = Orders.IndexOf(existing);
                Orders[index] = updatedOrder; // Sostituzione atomica
            }
            else
            {
                Orders.Add(updatedOrder);
            }
        });
    }

    public void Dispose()
    {
        _updateService.OrderUpdated -= OnOrderUpdated;
    }
}

Step 4 — Verifica completa (Mode 2)

> Full verification: revert fix, run tests (should fail), restore fix, run tests (should pass).

L’agente esegue il ciclo completo e produce il report: test fallisce senza fix, passa con fix, nessuna regressione sulle altre piattaforme. La PR è pronta in meno di un’ora contro le 4-6 ore del workflow manuale.

Impatto sul progetto aziendale: questo pattern si replica su qualsiasi bug di rendering, ciclo di vita, gestione della memoria o binding asincrono. Non stai imparando un tool esotico — stai aggiungendo un layer di automazione intelligente al workflow che già conosci.

7. Conclusioni ed Innovaformazione

Gli agenti AI per MAUI.NET non sono un esperimento accademico. Sono in produzione sul repository più complesso dell’ecosistema .NET mobile, documentati, open source e immediatamente replicabili. Il salto da zero a un workflow funzionante richiede meno di un pomeriggio. Il delta in produttività — 50-70% di tempo risparmiato per issue, test coverage che sale al 95% — è misurabile dalla settimana successiva.

Il rischio non è adottarli troppo presto. È aspettare che lo faccia il team a fianco al tuo.

Formati con Innovaformazione: AI Generativa e MAUI.NET

Se questo articolo ti ha convinto che è ora di muoversi sul serio, Innovaformazione ha i percorsi giusti per portare il tuo team a velocità in tempi certi.

I Corsi AI Generativa coprono esattamente questo stack: da Semantic Kernel e Microsoft Agent Framework alla costruzione di agenti personalizzati per workflow aziendali reali. Erogati in modalità classe virtuale online, è finanziabile tramite Fondimpresa, il che significa costo zero o quasi per l’azienda. Il Corso MAUI.NET ti porta dalla base al deploy multipiattaforma con le migliori pratiche aggiornate a .NET 10, inclusa l’integrazione con gli strumenti AI descritti in questo articolo.

Due percorsi, un obiettivo: abbattere il gap tra quello che sai fare oggi e quello che il mercato chiederà domani. Contattami per un’analisi del fabbisogno formativo del tuo team:

  • info@innovaformazione.net
  • 347 101 2275 — Dario Carrassi.

Per altri articoli tecnici consigliamo di navigare sul nostro blog QUI.

(fonte) (fonte) (fonte)

Ti potrebbe interessare

Articoli correlati