A Microsoft Build 2026, Microsoft ha confermato ufficialmente che il .NET Upgrade Assistant è deprecato. Al suo posto, il nuovo GitHub Copilot App Modernization diventa lo strumento di riferimento per migrare applicazioni .NET legacy verso versioni moderne del framework. Non si tratta di un semplice rebranding: il passaggio da un tool rule-based a un agente AI rappresenta un cambiamento di approccio profondo, con implicazioni pratiche significative per chi gestisce codebase enterprise datate.
Perché il .NET Upgrade Assistant non bastava più
Il .NET Upgrade Assistant, disponibile dalla versione 5 in poi, funzionava tramite un insieme di regole predefinite: identificava i pacchetti incompatibili, aggiornava i target framework, eseguiva trasformazioni note su file di configurazione. Questo approccio funzionava bene per migrazioni standard e poco complesse, ma mostrava i suoi limiti di fronte a pattern architetturali non canonici, codice con dipendenze circolari o applicazioni fortemente accoppiate a funzionalità specifiche di .NET Framework.
Un agente AI, invece, può leggere il contesto, comprendere l’intento del codice, gestire casi edge e iterare sugli errori di compilazione in modo autonomo — qualcosa che un sistema basato su regole non può fare per definizione.
Come funziona GitHub Copilot App Modernization
L’agente è integrato direttamente in Visual Studio 2026 (e Visual Studio 2022 versione 17.14.17 o superiore) e accessibile dalla palette dei comandi di GitHub Copilot. Il flusso di lavoro tipico è il seguente:
- Si apre il progetto o la solution da migrare in Visual Studio.
- Si avvia una conversazione con GitHub Copilot specificando l’obiettivo di modernizzazione (es. “migra questa applicazione ASP.NET MVC a .NET 10”).
- L’agente analizza il codebase, identifica le dipendenze da aggiornare, le API deprecate e i pattern non compatibili.
- Esegue le modifiche necessarie in autonomia, tenta la compilazione e, in caso di errori, itera per risolverli.
- Il processo continua finché la compilazione non ha successo o finché non è necessario l’intervento umano.
Il punto chiave è l’iterazione automatica sugli errori di build: l’agente non si limita ad applicare una serie di patch e consegnare il risultato, ma verifica attivamente che il codice compili correttamente dopo ogni modifica, riprovando con approcci diversi in caso di fallimento.
Scenari di modernizzazione supportati
L’agente copre una gamma ampia di scenari di migrazione .NET:
Migrazione del framework target
Il caso d’uso principale è la migrazione da .NET Framework (4.x) a .NET 8, 9 o 10. L’agente supporta i seguenti tipi di applicazione:
- ASP.NET MVC e Web API: migrazione alla versione corrispondente in ASP.NET Core.
- Windows Forms e WPF: migrazione a .NET 8/9/10 mantenendo il runtime Windows.
- Azure Functions: aggiornamento al modello isolated worker process.
- Web Forms → Blazor: supporto in arrivo; sarà possibile migrare applicazioni Web Forms verso Blazor, che rappresenta il percorso di modernizzazione più naturale per questo stack.
Conversione SDK-style
Le applicazioni .NET Framework usano ancora i vecchi file .csproj in formato XML verboso. L’agente esegue la conversione al formato SDK-style, molto più compatto e leggibile, rimuovendo riferimenti espliciti a file, gestendo i PackageReference e allineando la struttura del progetto agli standard moderni.
Integrazione di .NET Aspire
Uno degli scenari più interessanti è l’integrazione di .NET Aspire in applicazioni esistenti. L’agente può aggiungere Aspire a un’applicazione legacy, configurando l’AppHost, i service discovery e i componenti di observability (OpenTelemetry, health checks) senza dover ripartire da zero. Per team che vogliono portare in produzione applicazioni cloud-ready mantenendo il codebase esistente, questo è un cambio significativo.
Aggiornamenti di librerie e pacchetti
L’agente gestisce anche scenari più circoscritti come:
- Migrazione da Newtonsoft.Json a System.Text.Json.
- Aggiornamento di Microsoft.Data.SqlClient.
- Upgrade da Semantic Kernel al nuovo Microsoft Agent Framework.
Pre-build error checking in Visual Studio 2026
Parallelamente all’agente di modernizzazione, Visual Studio 2026 introduce una funzionalità di pre-build error checking: Visual Studio identifica errori e warning prima ancora che la build venga avviata, riducendo il ciclo di feedback per lo sviluppatore. La combinazione di questa funzionalità con l’agente di modernizzazione — che itera sugli errori di compilazione in autonomia — crea un loop di sviluppo più rapido e meno dipendente dal tempo di compilazione completa.
AI-assisted merge conflict resolution
Un’altra novità annunciata a Build 2026 per Visual Studio è il supporto all’AI-assisted conflict resolution: GitHub Copilot partecipa attivamente alla risoluzione dei merge conflict, aiutando lo sviluppatore a comprendere la natura del conflitto e suggerendo la risoluzione più appropriata in base al contesto del codice. Non sostituisce la decisione umana — il developer mantiene il controllo finale — ma riduce significativamente il tempo necessario per analizzare conflitti complessi in codebase di grandi dimensioni.
Come iniziare
Per usare GitHub Copilot App Modernization è necessario:
- Avere Visual Studio 2026 (o Visual Studio 2022 17.14.17+) con l’estensione GitHub Copilot installata.
- Una sottoscrizione GitHub Copilot attiva (Business o Enterprise per i team).
- Aprire la solution da migrare e avviare una chat con Copilot descrivendo il tipo di migrazione desiderata.
La documentazione ufficiale è disponibile su Microsoft Learn nella sezione GitHub Copilot modernization overview.
Considerazioni pratiche per team enterprise
La deprecazione del .NET Upgrade Assistant può sorprendere chi lo usa in pipeline CI/CD per automatizzare migrazioni. È importante notare che l’agente Copilot è uno strumento interattivo, pensato per lavorare con uno sviluppatore nel loop: non è un tool da riga di comando eseguibile in modo completamente non presidiato. Per le pipeline di migrazione automatizzate, almeno nella fase attuale, sarà necessario valutare approcci ibridi.
Sul fronte dei costi, l’agente usa il credito Copilot come qualsiasi altra funzionalità AI: le sessioni di modernizzazione complesse, che coinvolgono molte iterazioni di analisi e correzione, possono consumare una quantità significativa di token. Vale la pena fare un test su un progetto pilota prima di pianificare la migrazione di una solution enterprise complessa.
Conclusione
Il passaggio dal .NET Upgrade Assistant a GitHub Copilot App Modernization segna la maturità dell’approccio AI-first nella gestione del debito tecnico. Un agente che legge il codice, comprende il contesto, esegue le modifiche e itera sugli errori di compilazione in autonomia è concettualmente diverso da qualsiasi tool rule-based precedente. Per i team che gestiscono applicazioni .NET Framework legacy, vale la pena esplorare questo strumento — soprattutto per scenari come la migrazione Web Forms verso Blazor e l’integrazione di Aspire, che storicamente richiedevano sforzi manuali considerevoli.
Fonti: Visual Studio Microsoft Build 2026 Announcements | GitHub Copilot App Modernization — Microsoft Learn