<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Migration | The .NET Blog</title><link>https://thedotnetblog.com/it/tags/migration/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>it</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/it/tags/migration/index.xml" rel="self" type="application/rss+xml"/><item><title>Eliminare il Lavoro Ripetitivo della Migrazione con l'Agentic Platform Engineering</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/</guid><description>Git-Ape illustra la migrazione di un deployment Terraform AWS reale verso Azure Bicep — estraendo l'intenzione del deployment e rimappando l'architettura invece di fare una conversione sintattica 1:1.</description><content:encoded>&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/agentic-platform-engineering-migration-automation/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/all-things-azure/removing-the-monkey-work-of-migration-using-agentic-platform-engineering/"&gt;Removing the Monkey Work of Migration with Agentic Platform Engineering&lt;/a&gt; — una guida passo per passo di Git-Ape (strumento git di ingegneria di piattaforma agentiva) che migra un vero repository Terraform AWS verso Azure, concentrandosi sull&amp;rsquo;estrazione dell&amp;rsquo;intenzione piuttosto che sulla conversione riga per riga.&lt;/p&gt;
&lt;h2 id="linput-contoso-migration"&gt;L&amp;rsquo;input: contoso-migration&lt;/h2&gt;
&lt;p&gt;La fonte è un vero progetto Terraform (&lt;code&gt;contoso-migration&lt;/code&gt;) che distribuisce un&amp;rsquo;app Next.js su AWS — EC2 per il computing, ALB per il bilanciamento del carico, S3 per gli artefatti e chiavi IAM per l&amp;rsquo;identità. Costo: ~34 $/mese. L&amp;rsquo;obiettivo non è riprodurre la stessa infrastruttura su Azure; è capire cosa il deployment sta effettivamente cercando di fare e ricostruirlo con servizi nativi Azure.&lt;/p&gt;
&lt;h2 id="passo-1-validazione-e-autenticazione"&gt;Passo 1: Validazione e autenticazione&lt;/h2&gt;
&lt;p&gt;Git-Ape inizia validando tutti gli strumenti CLI richiesti — &lt;code&gt;az&lt;/code&gt;, &lt;code&gt;aws&lt;/code&gt;, &lt;code&gt;gh&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt;, &lt;code&gt;git&lt;/code&gt; — e confermando le sessioni di autenticazione attive prima di toccare qualsiasi cosa. Nessuna esecuzione parziale.&lt;/p&gt;
&lt;h2 id="passo-2-estrazione-dellintenzione"&gt;Passo 2: Estrazione dell&amp;rsquo;intenzione&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;agente legge l&amp;rsquo;intero repository sorgente tramite l&amp;rsquo;API GitHub ed estrae l&amp;rsquo;intenzione del deployment: runtime (Node.js), tipo di computing, modello di ingress, gestione degli artefatti, modello di identità, rete e monitoraggio. Questo è il passaggio chiave — sta costruendo un modello semantico di cosa fa il deployment, non quali parole chiave Terraform usa.&lt;/p&gt;
&lt;h2 id="passo-3-mappatura-dei-servizi"&gt;Passo 3: Mappatura dei servizi&lt;/h2&gt;
&lt;p&gt;I servizi AWS vengono mappati agli equivalenti Azure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC2 → App Service (Linux, Node 20 LTS)&lt;/li&gt;
&lt;li&gt;ALB → Bilanciamento del carico integrato di App Service&lt;/li&gt;
&lt;li&gt;Ruoli/chiavi IAM → Managed Identity&lt;/li&gt;
&lt;li&gt;Terraform → Bicep + GitHub Actions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="passo-4-agente-critico"&gt;Passo 4: Agente critico&lt;/h2&gt;
&lt;p&gt;Prima di generare l&amp;rsquo;output, viene eseguito un agente critico che individua due problemi bloccanti:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Anti-pattern di build all&amp;rsquo;avvio&lt;/strong&gt; — il Terraform originale eseguiva &lt;code&gt;npm install &amp;amp;&amp;amp; npm run build&lt;/code&gt; su EC2 all&amp;rsquo;avvio. Fix: costruire in CI, distribuire un artefatto pronto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blob Storage non necessario&lt;/strong&gt; — S3 veniva usato per lo staging degli artefatti che poteva essere eliminato con un CI/CD appropriato. L&amp;rsquo;agente critico lo ha rimosso completamente.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="passo-5-output-generato"&gt;Passo 5: Output generato&lt;/h2&gt;
&lt;p&gt;Il risultato è ~80 righe di Bicep invece delle 200+ righe originali di Terraform. L&amp;rsquo;agente ha creato un nuovo repository GitHub con &lt;code&gt;infra/main.bicep&lt;/code&gt; e &lt;code&gt;.github/workflows/deploy.yml&lt;/code&gt; e rimosso tutti i file specifici di AWS.&lt;/p&gt;
&lt;h2 id="confronto-della-postura-di-sicurezza"&gt;Confronto della postura di sicurezza&lt;/h2&gt;
&lt;p&gt;La migrazione ha anche prodotto un significativo miglioramento della sicurezza:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;AWS originale&lt;/th&gt;
&lt;th&gt;Output Azure&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Solo HTTP&lt;/td&gt;
&lt;td&gt;Solo HTTPS, TLS 1.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSH aperto a 0.0.0.0/0&lt;/td&gt;
&lt;td&gt;Nessuna esposizione SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chiavi di accesso IAM&lt;/td&gt;
&lt;td&gt;OIDC + Managed Identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nessun monitoraggio&lt;/td&gt;
&lt;td&gt;Application Insights&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Costo: ~13 $/mese vs i 34 $/mese originali.&lt;/p&gt;
&lt;h2 id="cosa-lo-differenzia-da-un-convertitore-di-sintassi"&gt;Cosa lo differenzia da un convertitore di sintassi&lt;/h2&gt;
&lt;p&gt;Il passaggio dell&amp;rsquo;agente critico è ciò che separa questo da una traduzione meccanica. Ha individuato pattern che avrebbero funzionato su AWS ma sarebbero stati sbagliati su Azure — e li ha corretti invece di replicarli. L&amp;rsquo;output non è &amp;ldquo;AWS in sintassi Azure&amp;rdquo;; è un deployment nativo Azure che raggiunge lo stesso obiettivo in modo più pulito.&lt;/p&gt;
&lt;p&gt;Vedi la &lt;a href="https://devblogs.microsoft.com/all-things-azure/removing-the-monkey-work-of-migration-using-agentic-platform-engineering/"&gt;guida completa&lt;/a&gt; per la traccia completa dell&amp;rsquo;agente e i file generati.&lt;/p&gt;</content:encoded></item><item><title>La valutazione di modernizzazione di GitHub Copilot è il miglior strumento di migrazione che non stai ancora usando</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</guid><description>L'estensione di modernizzazione di GitHub Copilot non si limita a suggerire modifiche al codice — produce una valutazione completa della migrazione con issue azionabili, confronti tra target Azure e un workflow collaborativo. Ecco perché il documento di valutazione è la chiave di tutto.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Migrare un&amp;rsquo;app legacy .NET Framework a .NET moderno è una di quelle attività che tutti sanno di dover fare ma che nessuno vuole iniziare. Non è mai solo &amp;ldquo;cambiare il target framework.&amp;rdquo; Sono API che sono scomparse, pacchetti che non esistono più, modelli di hosting che funzionano in modo completamente diverso, e un milione di piccole decisioni su cosa containerizzare, cosa riscrivere e cosa lasciare così.&lt;/p&gt;
&lt;p&gt;Jeffrey Fritz ha appena pubblicato un &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;approfondimento sulla valutazione di modernizzazione di GitHub Copilot&lt;/a&gt;, e onestamente? È il miglior tooling di migrazione che abbia visto per .NET. Non per la generazione di codice — quello è ormai standard. Per il documento di valutazione che produce.&lt;/p&gt;
&lt;h2 id="non-è-solo-un-motore-di-suggerimenti-di-codice"&gt;Non è solo un motore di suggerimenti di codice&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;estensione VS Code segue un modello &lt;strong&gt;Valuta → Pianifica → Esegui&lt;/strong&gt;. La fase di valutazione analizza l&amp;rsquo;intero codebase e produce un documento strutturato che cattura tutto: cosa deve cambiare, quali risorse Azure provisionare, quale modello di deployment usare. Tutto ciò che segue — infrastructure as code, containerizzazione, manifesti di deployment — deriva da ciò che la valutazione trova.&lt;/p&gt;
&lt;p&gt;La valutazione viene salvata in &lt;code&gt;.github/modernize/assessment/&lt;/code&gt; nel tuo progetto. Ogni esecuzione produce un report indipendente, così accumuli uno storico e puoi monitorare come la tua postura di migrazione evolve man mano che risolvi gli issue.&lt;/p&gt;
&lt;h2 id="due-modi-per-iniziare"&gt;Due modi per iniziare&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Valutazione Consigliata&lt;/strong&gt; — il percorso veloce. Scegli tra domini curati (Upgrade Java/.NET, Cloud Readiness, Sicurezza) e ottieni risultati significativi senza toccare la configurazione. Ottimo per un primo sguardo a dove si trova la tua app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Valutazione Personalizzata&lt;/strong&gt; — il percorso mirato. Configura esattamente cosa analizzare: compute target (App Service, AKS, Container Apps), OS target, analisi della containerizzazione. Scegli più target Azure per confrontare gli approcci di migrazione fianco a fianco.&lt;/p&gt;
&lt;p&gt;Quella vista di confronto è genuinamente utile. Un&amp;rsquo;app con 3 issue obbligatori per App Service potrebbe averne 7 per AKS. Vedere entrambi aiuta a guidare la decisione sull&amp;rsquo;hosting prima di impegnarsi in un percorso di migrazione.&lt;/p&gt;
&lt;h2 id="la-suddivisione-degli-issue-è-azionabile"&gt;La suddivisione degli issue è azionabile&lt;/h2&gt;
&lt;p&gt;Ogni issue viene con un livello di criticità:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Obbligatorio&lt;/strong&gt; — deve essere risolto o la migrazione fallisce&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Potenziale&lt;/strong&gt; — potrebbe impattare la migrazione, necessita di giudizio umano&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opzionale&lt;/strong&gt; — miglioramenti raccomandati, non bloccano la migrazione&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E ogni issue linka ai file interessati e numeri di riga, fornisce una descrizione dettagliata di cosa c&amp;rsquo;è che non va e perché conta per la tua piattaforma target, dà passaggi concreti di remediation (non solo &amp;ldquo;sistema questo&amp;rdquo;), e include link alla documentazione ufficiale.&lt;/p&gt;
&lt;p&gt;Puoi assegnare singoli issue agli sviluppatori e hanno tutto ciò di cui hanno bisogno per agire. Questa è la differenza tra uno strumento che ti dice &amp;ldquo;c&amp;rsquo;è un problema&amp;rdquo; e uno che ti dice come risolverlo.&lt;/p&gt;
&lt;h2 id="i-percorsi-di-upgrade-coperti"&gt;I percorsi di upgrade coperti&lt;/h2&gt;
&lt;p&gt;Per .NET specificamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET Framework → .NET 10&lt;/li&gt;
&lt;li&gt;ASP.NET → ASP.NET Core&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ogni percorso di upgrade ha regole di rilevamento che sanno quali API sono state rimosse, quali pattern non hanno un equivalente diretto e quali problemi di sicurezza richiedono attenzione.&lt;/p&gt;
&lt;p&gt;Per i team che gestiscono più applicazioni, c&amp;rsquo;è anche un CLI che supporta valutazioni batch multi-repo — clona tutti i repo, valutali tutti, ottieni report per app più una vista aggregata del portfolio.&lt;/p&gt;
&lt;h2 id="la-mia-opinione"&gt;La mia opinione&lt;/h2&gt;
&lt;p&gt;Se sei seduto su applicazioni legacy .NET Framework (e siamo onesti, la maggior parte dei team enterprise lo è), questo è &lt;em&gt;lo&lt;/em&gt; strumento con cui iniziare. Il solo documento di valutazione vale il tempo — trasforma un vago &amp;ldquo;dovremmo modernizzare&amp;rdquo; in una lista concreta e prioritizzata di elementi di lavoro con percorsi chiari in avanti.&lt;/p&gt;
&lt;p&gt;Il workflow collaborativo è intelligente anche: esporta le valutazioni, condividile con il tuo team, importale senza rieseguire. Review di architettura dove chi decide non è chi esegue gli strumenti? Coperto.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;La valutazione di modernizzazione di GitHub Copilot trasforma la migrazione .NET da un progetto spaventoso e indefinito in un processo strutturato e tracciabile. Inizia con una valutazione consigliata per vedere a che punto sei, poi usa valutazioni personalizzate per confrontare i target Azure e costruire il tuo piano di migrazione.&lt;/p&gt;
&lt;p&gt;Leggi il &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;walkthrough completo&lt;/a&gt; e scarica l&amp;rsquo;&lt;a href="https://aka.ms/ghcp-appmod/vscode-ext"&gt;estensione VS Code&lt;/a&gt; per provarla sul tuo codebase.&lt;/p&gt;</content:encoded></item></channel></rss>