<?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>Azd | The .NET Blog</title><link>https://thedotnetblog.com/it/tags/azd/</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>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/it/tags/azd/index.xml" rel="self" type="application/rss+xml"/><item><title>Hook azd in Python, TypeScript e .NET: basta script shell</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>La CLI di Azure Developer ora supporta hook in Python, JavaScript, TypeScript e .NET. Niente più switch di contesto verso Bash solo per uno script di migrazione.</description><content:encoded>&lt;p&gt;&lt;em&gt;Questo articolo è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Se hai mai avuto un progetto completamente in .NET e ti sei ritrovato a scrivere script Bash solo per gli hook di azd, conosci bene quella sensazione. Perché passare alla sintassi shell per un passaggio di pre-provisioning quando tutto il resto del progetto è in C#?&lt;/p&gt;
&lt;p&gt;Quella frustrazione ha ora una soluzione ufficiale. La CLI di Azure Developer &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;ha appena introdotto il supporto multi-linguaggio per gli hook&lt;/a&gt;, ed è esattamente buono come sembra.&lt;/p&gt;
&lt;h2 id="gli-hook-in-breve"&gt;Gli hook, in breve&lt;/h2&gt;
&lt;p&gt;Gli hook sono script eseguiti in punti chiave del ciclo di vita di &lt;code&gt;azd&lt;/code&gt; — prima del provisioning, dopo il deployment, e altro ancora. Definiti in &lt;code&gt;azure.yaml&lt;/code&gt;, permettono di iniettare logica personalizzata senza modificare la CLI.&lt;/p&gt;
&lt;p&gt;Prima erano supportati solo Bash e PowerShell. Ora si può usare &lt;strong&gt;Python, JavaScript, TypeScript o .NET&lt;/strong&gt; — e &lt;code&gt;azd&lt;/code&gt; si occupa del resto automaticamente.&lt;/p&gt;
&lt;h2 id="come-funziona-il-rilevamento"&gt;Come funziona il rilevamento&lt;/h2&gt;
&lt;p&gt;Basta puntare l&amp;rsquo;hook verso un file e &lt;code&gt;azd&lt;/code&gt; deduce il linguaggio dall&amp;rsquo;estensione:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nessuna configurazione aggiuntiva. Se l&amp;rsquo;estensione è ambigua, si può aggiungere &lt;code&gt;kind: python&lt;/code&gt; (o il linguaggio appropriato) per specificarlo esplicitamente.&lt;/p&gt;
&lt;h2 id="dettagli-per-linguaggio"&gt;Dettagli per linguaggio&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Inserire un &lt;code&gt;requirements.txt&lt;/code&gt; o &lt;code&gt;pyproject.toml&lt;/code&gt; vicino allo script (o in una directory padre). &lt;code&gt;azd&lt;/code&gt; crea automaticamente un ambiente virtuale, installa le dipendenze ed esegue lo script.&lt;/p&gt;
&lt;h3 id="javascript-e-typescript"&gt;JavaScript e TypeScript&lt;/h3&gt;
&lt;p&gt;Stesso schema — un &lt;code&gt;package.json&lt;/code&gt; vicino allo script e &lt;code&gt;azd&lt;/code&gt; esegue prima &lt;code&gt;npm install&lt;/code&gt;. Per TypeScript, usa &lt;code&gt;npx tsx&lt;/code&gt; senza step di compilazione né &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;Due modalità disponibili:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modalità progetto&lt;/strong&gt;: Se c&amp;rsquo;è un &lt;code&gt;.csproj&lt;/code&gt; vicino allo script, &lt;code&gt;azd&lt;/code&gt; esegue automaticamente &lt;code&gt;dotnet restore&lt;/code&gt; e &lt;code&gt;dotnet build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modalità single-file&lt;/strong&gt;: Con .NET 10+, i file &lt;code&gt;.cs&lt;/code&gt; autonomi vengono eseguiti direttamente via &lt;code&gt;dotnet run script.cs&lt;/code&gt;. Nessun file di progetto richiesto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configurazione-per-executor"&gt;Configurazione per executor&lt;/h2&gt;
&lt;p&gt;Ogni linguaggio supporta un blocco &lt;code&gt;config&lt;/code&gt; opzionale:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="perché-è-importante-per-gli-sviluppatori-net"&gt;Perché è importante per gli sviluppatori .NET&lt;/h2&gt;
&lt;p&gt;Gli hook erano l&amp;rsquo;ultimo posto in un progetto basato su azd che costringeva a cambiare linguaggio. Ora l&amp;rsquo;intera pipeline di deployment può vivere in un unico linguaggio. È possibile riutilizzare le utility .NET esistenti negli hook, referenziare librerie condivise ed eliminare la manutenzione di script shell.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;Uno di quei cambiamenti che sembrano piccoli ma che riducono concretamente la frizione quotidiana con azd. Il supporto multi-linguaggio per gli hook è disponibile ora — tutti i dettagli nel &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;post ufficiale&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd + GitHub Copilot: Configurazione del progetto con IA e risoluzione intelligente degli errori</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</guid><description>L'Azure Developer CLI si integra ora con GitHub Copilot per generare l'infrastruttura del tuo progetto e risolvere errori di deployment — senza uscire dal terminale.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Questo articolo è stato tradotto automaticamente. Per la versione originale in inglese, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conosci quel momento in cui vuoi fare il deploy di un&amp;rsquo;app esistente su Azure e ti ritrovi a fissare un &lt;code&gt;azure.yaml&lt;/code&gt; vuoto, cercando di ricordare se la tua API Express dovrebbe usare Container Apps o App Service? Quel momento è appena diventato molto più breve.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) si integra ora con GitHub Copilot in due modi concreti: scaffolding assistito dall&amp;rsquo;IA durante &lt;code&gt;azd init&lt;/code&gt;, e risoluzione intelligente degli errori quando i deployment falliscono. Entrambe le funzionalità rimangono completamente nel terminale — esattamente dove voglio che siano.&lt;/p&gt;
&lt;h2 id="configurazione-con-copilot-durante-azd-init"&gt;Configurazione con Copilot durante azd init&lt;/h2&gt;
&lt;p&gt;Quando esegui &lt;code&gt;azd init&lt;/code&gt;, ora compare l&amp;rsquo;opzione &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Selezionala e Copilot analizza la tua codebase per generare &lt;code&gt;azure.yaml&lt;/code&gt;, i template di infrastruttura e i moduli Bicep — basandosi sul tuo codice reale.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd init
# Seleziona: &amp;#34;Set up with GitHub Copilot (Preview)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Prerequisiti:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;azd 1.23.11 o superiore&lt;/strong&gt; — verifica con &lt;code&gt;azd version&lt;/code&gt; o aggiorna con &lt;code&gt;azd update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abbonamento attivo a GitHub Copilot&lt;/strong&gt; (Individual, Business o Enterprise)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;)&lt;/strong&gt; — &lt;code&gt;azd&lt;/code&gt; chiederà il login se necessario&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quello che trovo genuinamente utile: funziona in entrambi i sensi. Stai costruendo da zero? Copilot ti aiuta a configurare i servizi Azure giusti sin dall&amp;rsquo;inizio. Hai un&amp;rsquo;app esistente che volevi deployare da tempo? Punta Copilot su di essa e genera la configurazione senza che tu debba ristrutturare nulla.&lt;/p&gt;
&lt;h3 id="cosa-fa-davvero"&gt;Cosa fa davvero&lt;/h3&gt;
&lt;p&gt;Diciamo che hai un&amp;rsquo;API Express Node.js con dipendenza da PostgreSQL. Invece di decidere manualmente tra Container Apps e App Service, e poi scrivere Bicep da zero, Copilot rileva il tuo stack e genera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;code&gt;azure.yaml&lt;/code&gt; con le impostazioni corrette di &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt; e &lt;code&gt;build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un modulo Bicep per Azure Container Apps&lt;/li&gt;
&lt;li&gt;Un modulo Bicep per Azure Database for PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E prima di toccare qualsiasi cosa esegue verifiche preventive — controlla che la tua directory git sia pulita, chiede il consenso per gli strumenti del server MCP. Niente accade senza che tu sappia esattamente cosa sta per cambiare.&lt;/p&gt;
&lt;h2 id="risoluzione-degli-errori-con-copilot"&gt;Risoluzione degli errori con Copilot&lt;/h2&gt;
&lt;p&gt;Gli errori di deployment sono inevitabili. Parametri mancanti, problemi di permessi, disponibilità degli SKU — e il messaggio d&amp;rsquo;errore raramente ti dice l&amp;rsquo;unica cosa che hai davvero bisogno di sapere: &lt;em&gt;come risolverlo&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Senza Copilot, il ciclo è: copiare l&amp;rsquo;errore → cercare nella documentazione → leggere tre risposte irrilevanti su Stack Overflow → eseguire alcuni comandi &lt;code&gt;az&lt;/code&gt; CLI → riprovare sperando. Con Copilot integrato in &lt;code&gt;azd&lt;/code&gt;, questo ciclo collassa. Quando qualsiasi comando &lt;code&gt;azd&lt;/code&gt; fallisce, offre immediatamente quattro opzioni:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; — spiegazione in linguaggio naturale di cosa è andato storto&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt; — istruzioni passo dopo passo per correggere il problema&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diagnose and Guide&lt;/strong&gt; — analisi completa + Copilot applica la correzione (con la tua approvazione) + retry opzionale&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip&lt;/strong&gt; — gestire da soli&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il punto cruciale: Copilot ha già il contesto del tuo progetto, il comando che ha fallito e l&amp;rsquo;output dell&amp;rsquo;errore. I suoi suggerimenti sono specifici per &lt;em&gt;la tua situazione&lt;/em&gt;, non documentazione generica.&lt;/p&gt;
&lt;h3 id="configurare-il-comportamento-predefinito"&gt;Configurare il comportamento predefinito&lt;/h3&gt;
&lt;p&gt;Se scegli sempre la stessa opzione, salta il prompt interattivo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.category troubleshoot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Valori: &lt;code&gt;explain&lt;/code&gt;, &lt;code&gt;guidance&lt;/code&gt;, &lt;code&gt;troubleshoot&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;skip&lt;/code&gt;. Puoi anche abilitare auto-fix e retry:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.fix allow
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ritorno alla modalità interattiva in qualsiasi momento:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config unset copilot.errorHandling.category
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;Questo è esattamente il tipo di integrazione di Copilot che porta valore reale. Provalo eseguendo &lt;code&gt;azd update&lt;/code&gt; per ottenere l&amp;rsquo;ultima versione e usa &lt;code&gt;azd init&lt;/code&gt; nel tuo prossimo progetto.&lt;/p&gt;
&lt;p&gt;Leggi l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/"&gt;annuncio originale qui&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd update — Un solo comando per tutti i tuoi package manager</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLI ora ha un comando di aggiornamento universale che funziona indipendentemente da come lo hai installato — winget, Homebrew, Chocolatey o script di installazione.</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/azd-update-universal-upgrade-command/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conosci quel messaggio &amp;ldquo;È disponibile una nuova versione di azd&amp;rdquo; che compare ogni poche settimane? Quello che ignori perché non ricordi se hai installato &lt;code&gt;azd&lt;/code&gt; tramite winget, Homebrew o quello script curl che hai eseguito sei mesi fa? Ecco, finalmente è stato risolto.&lt;/p&gt;
&lt;p&gt;Microsoft ha appena rilasciato &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; — un unico comando che aggiorna Azure Developer CLI all&amp;rsquo;ultima versione indipendentemente da come lo hai installato in origine. Windows, macOS, Linux — non importa. Un solo comando.&lt;/p&gt;
&lt;h2 id="come-funziona"&gt;Come funziona&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tutto qui. Se vuoi accesso anticipato alle nuove funzionalità, puoi passare alla build giornaliera insiders:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel daily
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel stable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il comando rileva il tuo metodo di installazione attuale e utilizza il meccanismo di aggiornamento appropriato dietro le quinte. Niente più &amp;ldquo;aspetta, ho usato winget o choco su questa macchina?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="il-piccolo-dettaglio"&gt;Il piccolo dettaglio&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; è disponibile a partire dalla versione 1.23.x. Se sei su una versione precedente, dovrai fare un ultimo aggiornamento manuale usando il tuo metodo di installazione originale. Dopo di che, &lt;code&gt;azd update&lt;/code&gt; gestisce tutto d&amp;rsquo;ora in avanti.&lt;/p&gt;
&lt;p&gt;Controlla la tua versione attuale con &lt;code&gt;azd version&lt;/code&gt;. Se hai bisogno di un&amp;rsquo;installazione da zero, la &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;documentazione di installazione&lt;/a&gt; fa al caso tuo.&lt;/p&gt;
&lt;h2 id="perché-è-importante"&gt;Perché è importante&lt;/h2&gt;
&lt;p&gt;È un piccolo miglioramento della qualità della vita, ma per chi di noi usa &lt;code&gt;azd&lt;/code&gt; quotidianamente per il deploy di agenti IA e app Aspire su Azure, essere aggiornati significa meno momenti &amp;ldquo;questo bug era già stato corretto nell&amp;rsquo;ultima versione&amp;rdquo;. Una cosa in meno a cui pensare.&lt;/p&gt;
&lt;p&gt;Leggi l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;annuncio completo&lt;/a&gt; e l&amp;rsquo;&lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;approfondimento&lt;/a&gt; di Jon Gallant per maggiori dettagli.&lt;/p&gt;</content:encoded></item><item><title>azd ora permette di eseguire e debuggare agenti IA localmente — Ecco cosa è cambiato a marzo 2026</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>L'Azure Developer CLI ha rilasciato sette versioni a marzo 2026. I punti salienti: un loop locale di esecuzione e debug per agenti IA, integrazione con GitHub Copilot nella configurazione dei progetti, e supporto per Container App Jobs.</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/azd-march-2026-local-ai-agent-debugging/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sette rilasci in un mese. È quello che il team dell&amp;rsquo;Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) ha pubblicato a marzo 2026, e la funzionalità principale è quella che stavo aspettando: &lt;strong&gt;un loop locale di esecuzione e debug per agenti IA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;PC Chan &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;ha pubblicato il riepilogo completo&lt;/a&gt;, e anche se c&amp;rsquo;è molto contenuto, lasciatemi filtrare ciò che conta davvero per gli sviluppatori .NET che costruiscono app con IA.&lt;/p&gt;
&lt;h2 id="eseguire-e-debuggare-agenti-ia-senza-deploy"&gt;Eseguire e debuggare agenti IA senza deploy&lt;/h2&gt;
&lt;p&gt;Questa è la novità principale. La nuova estensione &lt;code&gt;azure.ai.agents&lt;/code&gt; aggiunge comandi che danno un&amp;rsquo;esperienza di inner-loop adeguata per gli agenti IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — avvia il tuo agente localmente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — gli invia messaggi (locale o in produzione)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — mostra lo stato del container e la sua salute&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — trasmette i log del container in tempo reale&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prima, testare un agente IA significava fare deploy su Microsoft Foundry ogni volta che facevi un cambiamento. Ora puoi iterare localmente, testare il comportamento del tuo agente, e fare deploy solo quando sei pronto.&lt;/p&gt;
&lt;h2 id="github-copilot-configura-il-tuo-progetto-azd"&gt;GitHub Copilot configura il tuo progetto azd&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; ora offre un&amp;rsquo;opzione &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Invece di rispondere manualmente ai prompt, un agente Copilot genera la configurazione per te. Quando un comando fallisce, &lt;code&gt;azd&lt;/code&gt; offre troubleshooting assistito dall&amp;rsquo;IA — tutto senza lasciare il terminale.&lt;/p&gt;
&lt;h2 id="container-app-jobs-e-miglioramenti-del-deployment"&gt;Container App Jobs e miglioramenti del deployment&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt;: &lt;code&gt;azd&lt;/code&gt; ora fa deploy di &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; tramite la config esistente &lt;code&gt;host: containerapp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timeout configurabili&lt;/strong&gt;: Nuovo flag &lt;code&gt;--timeout&lt;/code&gt; su &lt;code&gt;azd deploy&lt;/code&gt; e campo &lt;code&gt;deployTimeout&lt;/code&gt; in &lt;code&gt;azure.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fallback di build remoto&lt;/strong&gt;: Quando il build ACR fallisce, &lt;code&gt;azd&lt;/code&gt; passa automaticamente a Docker/Podman locale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validazione preflight locale&lt;/strong&gt;: I parametri Bicep vengono validati localmente prima del deploy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="miglioramenti-dx"&gt;Miglioramenti DX&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rilevamento automatico pnpm/yarn&lt;/strong&gt; per progetti JS/TS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supporto pyproject.toml&lt;/strong&gt; per Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directory template locali&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; accetta percorsi del filesystem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Messaggi di errore migliori&lt;/strong&gt; in modalità &lt;code&gt;--no-prompt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variabili d&amp;rsquo;ambiente di build&lt;/strong&gt; iniettate in tutti i sottoprocessi di build (.NET, Node.js, Java, Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Il loop locale di debug per agenti IA è la star di questa release, ma l&amp;rsquo;accumulo di miglioramenti al deployment e alla DX rende &lt;code&gt;azd&lt;/code&gt; più maturo che mai. Se fai deploy di app .NET su Azure — specialmente agenti IA — questo aggiornamento vale la pena.&lt;/p&gt;
&lt;p&gt;Consulta le &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;note di rilascio complete&lt;/a&gt; per tutti i dettagli.&lt;/p&gt;</content:encoded></item><item><title>Dal laptop alla produzione: deploy di agenti IA su Microsoft Foundry con due comandi</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>L'Azure Developer CLI ora ha i comandi 'azd ai agent' che portano il tuo agente IA dallo sviluppo locale a un endpoint Foundry in produzione in pochi minuti. Ecco il workflow completo.</description><content:encoded>&lt;p&gt;Conosci quel divario tra &amp;ldquo;funziona sulla mia macchina&amp;rdquo; e &amp;ldquo;è in produzione e serve traffico&amp;rdquo;? Per gli agenti IA, quel divario è stato dolorosamente ampio. Devi provisionare risorse, fare il deploy dei modelli, configurare l&amp;rsquo;identità, impostare il monitoraggio — e questo è prima che qualcuno possa effettivamente chiamare il tuo agente.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI ha appena reso tutto questo una &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;questione di due comandi&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="il-nuovo-workflow-azd-ai-agent"&gt;Il nuovo workflow &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Lascia che ti mostri come funziona nella pratica. Hai un progetto di agente IA — diciamo un agente concierge d&amp;rsquo;hotel. Funziona in locale. Vuoi farlo girare su Microsoft Foundry.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tutto qui. Due comandi. &lt;code&gt;azd ai agent init&lt;/code&gt; genera l&amp;rsquo;infrastructure-as-code nel tuo repo, e &lt;code&gt;azd up&lt;/code&gt; provisiona tutto su Azure e pubblica il tuo agente. Ottieni un link diretto al tuo agente nel portale Foundry.&lt;/p&gt;
&lt;h2 id="cosa-succede-sotto-il-cofano"&gt;Cosa succede sotto il cofano&lt;/h2&gt;
&lt;p&gt;Il comando &lt;code&gt;init&lt;/code&gt; genera template Bicep reali e ispezionabili nel tuo repo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una &lt;strong&gt;Foundry Resource&lt;/strong&gt; (contenitore di livello superiore)&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;Foundry Project&lt;/strong&gt; (dove vive il tuo agente)&lt;/li&gt;
&lt;li&gt;Configurazione del &lt;strong&gt;deployment del modello&lt;/strong&gt; (GPT-4o, ecc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt; con assegnazioni di ruoli RBAC appropriate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; per la mappa dei servizi&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; con metadati dell&amp;rsquo;agente e variabili d&amp;rsquo;ambiente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il punto chiave: tutto questo è tuo. È Bicep versionato nel tuo repo. Puoi ispezionarlo, personalizzarlo e committarlo insieme al codice del tuo agente. Nessuna scatola nera magica.&lt;/p&gt;
&lt;h2 id="il-ciclo-interno-di-sviluppo"&gt;Il ciclo interno di sviluppo&lt;/h2&gt;
&lt;p&gt;Quello che mi piace davvero è l&amp;rsquo;esperienza di sviluppo locale. Quando stai iterando sulla logica dell&amp;rsquo;agente, non vuoi fare il redeploy ogni volta che cambi un prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo avvia il tuo agente in locale. Combinalo con &lt;code&gt;azd ai agent invoke&lt;/code&gt; per inviare prompt di test, e hai un ciclo di feedback stretto. Modificare codice, riavviare, invocare, ripetere.&lt;/p&gt;
&lt;p&gt;Il comando &lt;code&gt;invoke&lt;/code&gt; è anche intelligente nel routing — quando un agente locale è in esecuzione, lo punta automaticamente. Quando non lo è, va all&amp;rsquo;endpoint remoto.&lt;/p&gt;
&lt;h2 id="monitoraggio-in-tempo-reale"&gt;Monitoraggio in tempo reale&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità che mi ha convinto. Una volta che il tuo agente è in deploy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ogni richiesta e risposta che passa attraverso il tuo agente viene trasmessa al tuo terminale in tempo reale. Per il debug di problemi in produzione, non ha prezzo. Niente ricerche in Log Analytics, niente attese per l&amp;rsquo;aggregazione delle metriche — vedi cosa sta succedendo adesso.&lt;/p&gt;
&lt;h2 id="il-set-completo-dei-comandi"&gt;Il set completo dei comandi&lt;/h2&gt;
&lt;p&gt;Ecco il riferimento rapido:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Cosa fa&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scaffold di un progetto agente Foundry con IaC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Provisiona risorse Azure e fa il deploy dell&amp;rsquo;agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Invia prompt all&amp;rsquo;agente remoto o locale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Esegue l&amp;rsquo;agente in locale per lo sviluppo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streama log in tempo reale dall&amp;rsquo;agente pubblicato&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Controlla salute e stato dell&amp;rsquo;agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pulisce tutte le risorse Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="perché-è-importante-per-gli-sviluppatori-net"&gt;Perché è importante per gli sviluppatori .NET&lt;/h2&gt;
&lt;p&gt;Anche se l&amp;rsquo;esempio nell&amp;rsquo;annuncio è basato su Python, la storia dell&amp;rsquo;infrastruttura è language-agnostic. Il tuo agente .NET ottiene lo stesso scaffolding Bicep, lo stesso setup di managed identity, la stessa pipeline di monitoraggio. E se stai già usando &lt;code&gt;azd&lt;/code&gt; per le tue app .NET Aspire o deployment Azure, si integra direttamente nel tuo workflow esistente.&lt;/p&gt;
&lt;p&gt;Il divario di deployment per gli agenti IA è stato uno dei maggiori punti di attrito nell&amp;rsquo;ecosistema. Passare da un prototipo funzionante a un endpoint di produzione con identità, networking e monitoraggio appropriati non dovrebbe richiedere una settimana di lavoro DevOps. Ora richiede due comandi e qualche minuto.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; è disponibile ora. Se hai rimandato il deployment dei tuoi agenti IA perché il setup dell&amp;rsquo;infrastruttura sembrava troppo lavoro, provalo. Consulta il &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;walkthrough completo&lt;/a&gt; per la guida passo per passo inclusa l&amp;rsquo;integrazione di un&amp;rsquo;app chat frontend.&lt;/p&gt;</content:encoded></item></channel></rss>