<?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>Developer Tools | The .NET Blog</title><link>https://thedotnetblog.com/it/tags/developer-tools/</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>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/it/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.119: OpenTelemetry per le sessioni degli agenti, integrazione del browser e sicurezza</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</guid><description>VS Code 1.119 (maggio 2026) aggiunge il tracciamento OpenTelemetry per le sessioni degli agenti, la condivisione delle schede del browser, miglioramenti di fiducia e sicurezza, e una patch di sicurezza 1.119.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/visual-studio-code-1-119-highlights/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;VS Code 1.119&lt;/a&gt; è stato rilasciato il 6 maggio 2026 (con una patch di sicurezza 1.119.1 poco dopo). La versione si concentra sull&amp;rsquo;osservabilità degli agenti, l&amp;rsquo;interazione con il browser e la riduzione delle interruzioni.&lt;/p&gt;
&lt;h2 id="tracciamento-opentelemetry-per-le-sessioni-degli-agenti"&gt;Tracciamento OpenTelemetry per le sessioni degli agenti&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità di punta per chiunque esegua agenti in produzione o esegua il debug di flussi di lavoro agentici. Abilitarla con due impostazioni:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.enabled&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.otlpEndpoint&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;http://localhost:4318&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le tracce seguono le convenzioni semantiche GenAI. Ogni richiesta dell&amp;rsquo;agente produce uno span root &lt;code&gt;invoke_agent&lt;/code&gt; con span figli annidati: &lt;code&gt;chat&lt;/code&gt;, &lt;code&gt;execute_tool&lt;/code&gt; e &lt;code&gt;execute_hook&lt;/code&gt;. L&amp;rsquo;utilizzo dei token viene riportato per richiesta — inclusi i conteggi di lettura della cache e creazione della cache.&lt;/p&gt;
&lt;p&gt;Funziona con l&amp;rsquo;agente locale, l&amp;rsquo;agente in background Copilot CLI e l&amp;rsquo;agente Claude. Qualsiasi backend compatibile OTLP accetta le tracce — l&amp;rsquo;&lt;a href="https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/standalone"&gt;Aspire Dashboard standalone&lt;/a&gt; funziona bene per lo sviluppo locale.&lt;/p&gt;
&lt;h2 id="gli-agenti-ora-possono-accedere-alle-schede-del-browser"&gt;Gli agenti ora possono accedere alle schede del browser&lt;/h2&gt;
&lt;p&gt;Gli agenti possono richiedere l&amp;rsquo;accesso alle schede del browser integrato — ma non è automatico. È necessario condividere esplicitamente una scheda tramite il selettore di contesto, trascinamento e rilascio o contesto suggerito. C&amp;rsquo;è un pulsante di condivisione nel browser per revocare l&amp;rsquo;accesso. Quando un agente tenta di aprire una nuova scheda sullo stesso dominio di una scheda già aperta (non condivisa), VS Code chiede di riutilizzare la scheda esistente.&lt;/p&gt;
&lt;h2 id="utilizzo-ottimizzato-dei-token"&gt;Utilizzo ottimizzato dei token&lt;/h2&gt;
&lt;p&gt;Un modello leggero sperimentale ora gestisce le liste di attività degli agenti, mantenendo questo lavoro amministrativo lontano dal modello primario più costoso. Riduce il consumo di token per attività che non richiedono piena capacità di ragionamento.&lt;/p&gt;
&lt;h2 id="fiducia-e-sicurezza"&gt;Fiducia e sicurezza&lt;/h2&gt;
&lt;p&gt;Meno interruzioni: VS Code 1.119 riduce i prompt per le richieste di accesso alla rete e le scritture nelle cartelle temporanee da parte degli agenti. La patch 1.119.1 risolve specifici problemi di sicurezza — vale la pena aggiornare se non è ancora stato fatto.&lt;/p&gt;
&lt;h2 id="cambio-rapido-allanteprima-markdown"&gt;Cambio rapido all&amp;rsquo;anteprima Markdown&lt;/h2&gt;
&lt;p&gt;Piccolo ma utile: ora è possibile passare rapidamente dall&amp;rsquo;editor corrente all&amp;rsquo;anteprima Markdown senza navigare.&lt;/p&gt;
&lt;h2 id="vs-code-agents-anteprima-insiders"&gt;VS Code Agents (anteprima Insiders)&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;interfaccia di sessione degli agenti riprogettata — nuovo selettore di repository (locale/repos/remoto), miglioramenti delle sotto-sessioni, rifinitura web e mobile, animazioni di avanzamento — è disponibile in Insiders su &lt;a href="https://insiders.vscode.dev/agents"&gt;insiders.vscode.dev/agents&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Changelog completo: &lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;code.visualstudio.com/updates/v1_119&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure Data Studio è stato ritirato: sposta il tuo flusso di Azure SQL su VS Code</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</guid><description>Azure Data Studio è stato ritirato il 6 febbraio 2025, con supporto fino al 28 febbraio 2026. Ecco il percorso di migrazione completo verso VS Code con l'estensione MSSQL.</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/azure-data-studio-retired-move-to-vscode-sql/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;Azure Data Studio è stato ritirato il 6 febbraio 2025&lt;/a&gt;, con supporto fino al 28 febbraio 2026 — il sostituto consigliato è VS Code con l&amp;rsquo;estensione MSSQL.&lt;/p&gt;
&lt;h2 id="cosa-installare"&gt;Cosa installare&lt;/h2&gt;
&lt;p&gt;Tre elementi per iniziare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Estensione MSSQL&lt;/strong&gt; — cerca &amp;ldquo;SQL Server (mssql)&amp;rdquo; nel Marketplace di VS Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Estensione SQL Database Projects&lt;/strong&gt; — schema come codice, validazione della build, pubblicazione guidata&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET 8 SDK&lt;/strong&gt; — richiesto dal sistema di build; l&amp;rsquo;SDK mancante è il problema più comune al primo avvio&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="migrare-le-connessioni-e-le-impostazioni-di-ads"&gt;Migrare le connessioni e le impostazioni di ADS&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;estensione MSSQL include l&amp;rsquo;&lt;strong&gt;ADS Migration Toolkit&lt;/strong&gt;, che gestisce la migrazione una tantum in un flusso guidato: connessioni salvate, gruppi di connessioni, impostazioni e tasti di scelta rapida vengono importati automaticamente.&lt;/p&gt;
&lt;h2 id="ripristinare-la-memoria-muscolare-del-f5"&gt;Ripristinare la memoria muscolare del F5&lt;/h2&gt;
&lt;p&gt;Gli utenti di ADS si affidano a F5 per eseguire le query. Installa l&amp;rsquo;estensione &lt;strong&gt;MSSQL Database Management Keymap&lt;/strong&gt; per recuperare i tasti di scelta rapida in stile ADS, incluso F5.&lt;/p&gt;
&lt;h2 id="sql-database-projects-schema-come-codice"&gt;SQL Database Projects: schema come codice&lt;/h2&gt;
&lt;p&gt;Clic destro su un progetto → &lt;strong&gt;Pubblica&lt;/strong&gt; → configura la destinazione → rivedi lo script T-SQL generato → distribuisci. L&amp;rsquo;anteprima dello script prima del deployment è la funzionalità di sicurezza chiave. I modelli di elementi generano stub per tabelle, stored procedure e viste — lo stesso flusso di SSDT.&lt;/p&gt;
&lt;p&gt;Problema frequente: un&amp;rsquo;&lt;strong&gt;incompatibilità della piattaforma di destinazione&lt;/strong&gt; nel file &lt;code&gt;.sqlproj&lt;/code&gt; causerà errori di build se il progetto è stato creato per una versione diversa di SQL Server.&lt;/p&gt;
&lt;h2 id="schema-compare-e-schema-designer"&gt;Schema Compare e Schema Designer&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;estensione include anche &lt;strong&gt;Schema Compare&lt;/strong&gt; (differenza tra il progetto e il database distribuito) e &lt;strong&gt;Schema Designer&lt;/strong&gt; (modifica visuale dello schema senza scrivere DDL a mano).&lt;/p&gt;
&lt;h2 id="sviluppatori-di-microsoft-fabric"&gt;Sviluppatori di Microsoft Fabric&lt;/h2&gt;
&lt;p&gt;La configurazione è identica, ma inizia dal &lt;strong&gt;portale Fabric&lt;/strong&gt; e connetti prima il database a Git prima di aprirlo in VS Code. Microsoft ha una guida dedicata: &lt;em&gt;Azure Data Studio to VS Code — What it means for SQL database in Fabric developers&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="in-conclusione"&gt;In conclusione&lt;/h2&gt;
&lt;p&gt;La migrazione è un flusso guidato una tantum, non una ricostruzione manuale. Installa i tre strumenti, esegui l&amp;rsquo;ADS Migration Toolkit, ripristina i tuoi tasti di scelta rapida e sarai di nuovo operativo in meno di 10 minuti.&lt;/p&gt;
&lt;p&gt;Consulta l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;articolo completo&lt;/a&gt; per screenshot passo-passo e la guida specifica per Fabric.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server Ora è un .mcpb — Installalo senza Nessun Runtime</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server è ora disponibile come MCP Bundle (.mcpb) — scaricalo, trascinalo in Claude Desktop e il gioco è fatto. Nessun Node.js, Python o .NET richiesto.</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/azure-mcp-server-mcpb-no-runtime-install/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sai cosa era fastidioso nella configurazione dei server MCP? Avevi bisogno di un runtime. Node.js per la versione npm, Python per pip/uvx, .NET SDK per la variante dotnet.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server ha appena cambiato questo&lt;/a&gt;. È ora disponibile come &lt;code&gt;.mcpb&lt;/code&gt; — un MCP Bundle — e la configurazione è drag-and-drop.&lt;/p&gt;
&lt;h2 id="cosè-un-mcp-bundle"&gt;Cos&amp;rsquo;è un MCP Bundle?&lt;/h2&gt;
&lt;p&gt;Pensaci come a un&amp;rsquo;estensione VS Code (&lt;code&gt;.vsix&lt;/code&gt;) o un&amp;rsquo;estensione browser (&lt;code&gt;.crx&lt;/code&gt;), ma per i server MCP. Un file &lt;code&gt;.mcpb&lt;/code&gt; è un archivio ZIP autonomo che include il binario del server e tutte le sue dipendenze.&lt;/p&gt;
&lt;h2 id="come-installarlo"&gt;Come installarlo&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Scarica il bundle per la tua piattaforma&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vai alla &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;pagina GitHub Releases&lt;/a&gt; e scarica il file &lt;code&gt;.mcpb&lt;/code&gt; per il tuo OS e architettura.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Installa in Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il modo più semplice: trascina il file &lt;code&gt;.mcpb&lt;/code&gt; nella finestra di Claude Desktop sulla pagina delle impostazioni Estensioni (&lt;code&gt;☰ → File → Impostazioni → Estensioni&lt;/code&gt;). Rivedi i dettagli del server, clicca su Installa, conferma.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Autenticati su Azure&lt;/strong&gt;&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;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fatto. Azure MCP Server usa le tue credenziali Azure esistenti.&lt;/p&gt;
&lt;h2 id="cosa-puoi-fare"&gt;Cosa puoi fare&lt;/h2&gt;
&lt;p&gt;Oltre 100 strumenti di servizi Azure direttamente dal tuo client AI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interrogare e gestire Cosmos DB, Storage, Key Vault, App Service, Foundry&lt;/li&gt;
&lt;li&gt;Generare comandi &lt;code&gt;az&lt;/code&gt; CLI per qualsiasi attività&lt;/li&gt;
&lt;li&gt;Creare template Bicep e Terraform&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="per-iniziare"&gt;Per iniziare&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Download&lt;/strong&gt;: &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-"&gt;GitHub Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repository&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consulta il &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;post completo&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.118: Copilot CLI ottiene Nomi di Sessione, Badge di Modello e TypeScript 7.0 Nightly</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118 è una release focalizzata sui miglioramenti di Copilot CLI — denominazione sessioni, badge modello, selezione automatica modello e opt-in TypeScript 7.0 Nightly.</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/vscode-1-118-copilot-cli-session-names-model-badge/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;Visual Studio Code 1.118&lt;/a&gt; è una release più piccola e focalizzata — principalmente raffinamenti di Copilot CLI.&lt;/p&gt;
&lt;h2 id="copilot-cli-le-sessioni-hanno-nomi-reali"&gt;Copilot CLI: le sessioni hanno nomi reali&lt;/h2&gt;
&lt;p&gt;Le API di titolo di sessione dell&amp;rsquo;SDK di Copilot CLI vengono ora usate come fonte di verità per i nomi delle sessioni. Invece di etichette auto-generate, le sessioni mostrano il nome reale dall&amp;rsquo;SDK.&lt;/p&gt;
&lt;h2 id="cambia-sessione-più-velocemente"&gt;Cambia sessione più velocemente&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;app Agents ha ora &lt;code&gt;Ctrl+1&lt;/code&gt;, &lt;code&gt;Ctrl+2&lt;/code&gt;, ecc. per passare rapidamente tra le sessioni.&lt;/p&gt;
&lt;h2 id="badge-modello-nella-chat"&gt;Badge modello nella chat&lt;/h2&gt;
&lt;p&gt;Le risposte di Copilot CLI nel pannello chat mostrano ora un badge modello — puoi vedere a colpo d&amp;rsquo;occhio quale modello ha gestito ogni richiesta.&lt;/p&gt;
&lt;h2 id="selezione-automatica-del-modello-in-copilot-cli"&gt;Selezione automatica del modello in Copilot CLI&lt;/h2&gt;
&lt;p&gt;La selezione automatica del modello funziona ora anche nell&amp;rsquo;agente Copilot CLI.&lt;/p&gt;
&lt;h2 id="opt-in-per-typescript-70-nightly"&gt;Opt-in per TypeScript 7.0 Nightly&lt;/h2&gt;
&lt;p&gt;Puoi ora optare per testare i nightly di TypeScript 7.0 direttamente dalle impostazioni di VS Code. TypeScript 7.0 è un release importante (la &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/"&gt;beta è uscita pochi giorni fa&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Consulta le &lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;note di release complete&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes: Un unico endpoint per tutti i tool degli agenti</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry ha lanciato Toolboxes in public preview — un modo per curare, gestire ed esporre i tool degli agenti IA tramite un unico endpoint compatibile MCP.</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/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;è un problema che sembra noioso finché non lo si vive in prima persona: l&amp;rsquo;organizzazione sta costruendo più agenti IA, ognuno ha bisogno di tool, e ogni team li riconfigura da zero. La stessa integrazione di ricerca web, la stessa config di Azure AI Search, la stessa connessione al server MCP di GitHub — ma in un altro repository, da un altro team, con altre credenziali e senza governance condivisa.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry ha appena lanciato &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; in public preview, ed è una risposta diretta a questo problema.&lt;/p&gt;
&lt;h2 id="cosè-una-toolbox"&gt;Cos&amp;rsquo;è una Toolbox?&lt;/h2&gt;
&lt;p&gt;Una Toolbox è un bundle di tool con nome, riutilizzabile, che si definisce una volta in Foundry e si espone tramite un unico endpoint compatibile MCP. Qualsiasi runtime di agente che parla MCP può consumarlo — nessun lock-in con Foundry Agents.&lt;/p&gt;
&lt;p&gt;La promessa è semplice: &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;. Definisci i tool, configura l&amp;rsquo;autenticazione centralmente (OAuth passthrough, identità gestita di Entra), pubblica l&amp;rsquo;endpoint. Ogni agente che ha bisogno di quei tool si connette all&amp;rsquo;endpoint e li ottiene tutti.&lt;/p&gt;
&lt;h2 id="i-quattro-pilastri-due-disponibili-oggi"&gt;I quattro pilastri (due disponibili oggi)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pilastro&lt;/th&gt;
&lt;th&gt;Stato&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;strong&gt;Discover&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;In arrivo&lt;/td&gt;
&lt;td&gt;Trova tool approvati senza ricerca manuale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disponibile&lt;/td&gt;
&lt;td&gt;Raggruppa tool in un bundle riutilizzabile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consume&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disponibile&lt;/td&gt;
&lt;td&gt;Un endpoint MCP unico espone tutti i tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Govern&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;In arrivo&lt;/td&gt;
&lt;td&gt;Auth centralizzata + observability per tutte le chiamate&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="esempio-pratico"&gt;Esempio pratico&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.identity&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;FOUNDRY_PROJECT_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;toolbox_version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toolboxes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_toolbox_version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;toolbox_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;customer-feedback-triaging-toolbox&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Cerca documentazione e rispondi alle issue di GitHub.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;web_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Cerca documentazione pubblica&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;azure_ai_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;index_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;internal-docs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;mcp_server&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;server_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://your-github-mcp-server.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Una volta pubblicato, Foundry fornisce un endpoint unificato. Una connessione, tutti i tool.&lt;/p&gt;
&lt;h2 id="nessun-lock-in-con-foundry-agents"&gt;Nessun lock-in con Foundry Agents&lt;/h2&gt;
&lt;p&gt;Le Toolbox vengono &lt;strong&gt;create e gestite&lt;/strong&gt; in Foundry, ma la superficie di consumo è il protocollo MCP aperto. Si possono usare da agenti personalizzati (Microsoft Agent Framework, LangGraph), GitHub Copilot e altri IDE compatibili MCP.&lt;/p&gt;
&lt;h2 id="perché-è-importante-adesso"&gt;Perché è importante adesso&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;ondata multi-agente sta arrivando in produzione. Ogni nuovo agente è una nuova superficie per configurazione duplicata, credenziali scadute e comportamento inconsistente. La base Build + Consume è sufficiente per iniziare a centralizzare. Quando arriverà il pilastro Govern, si avrà uno strato di tool completamente osservabile e controllato centralmente per tutta la flotta di agenti.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;È ancora presto — public preview, SDK Python prima, con Discover e Govern ancora in arrivo. Ma il modello è solido e il design nativo MCP significa che funziona con i tool che si stanno già costruendo. Dai un&amp;rsquo;occhiata all&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;annuncio ufficiale&lt;/a&gt; per iniziare.&lt;/p&gt;</content:encoded></item><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>Windows App Dev CLI v0.3: F5 dal terminale e UI Automation per gli agenti</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3 porta winapp run per avviare e fare debug dal terminale, winapp ui per l'automazione dell'interfaccia e un nuovo pacchetto NuGet che fa funzionare dotnet run con le app pacchettizzate.</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/windows-app-dev-cli-v03-run-ui-automation/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;esperienza F5 di Visual Studio è fantastica. Ma dover aprire VS solo per avviare e fare debug di un&amp;rsquo;app Windows pacchettizzata è eccessivo — che si tratti di una pipeline CI, di un workflow automatizzato o di un agente AI che esegue i test.&lt;/p&gt;
&lt;p&gt;Windows App Development CLI v0.3 è &lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;appena uscita&lt;/a&gt; e lo affronta direttamente con due funzionalità principali: &lt;code&gt;winapp run&lt;/code&gt; e &lt;code&gt;winapp ui&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="winapp-run-f5-da-qualsiasi-posto"&gt;winapp run: F5 da qualsiasi posto&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt; prende una cartella di app non pacchettizzata e un manifesto, e fa tutto ciò che VS fa nel debug launch: registra un pacchetto loose, avvia l&amp;rsquo;app e preserva il &lt;code&gt;LocalState&lt;/code&gt; tra i re-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;&lt;span class="c1"&gt;# Compila l&amp;#39;app, poi avviala come app pacchettizzata&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;winapp run ./bin/Debug
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Funziona per WinUI, WPF, WinForms, Console, Avalonia e altro. Le modalità sono pensate per sviluppatori e workflow automatizzati:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt;: Avvia e restituisce il controllo al terminale immediatamente. Perfetto per CI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt;: Pulisce il pacchetto registrato alla chiusura dell&amp;rsquo;app.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--debug-output&lt;/code&gt;&lt;/strong&gt;: Cattura i messaggi &lt;code&gt;OutputDebugString&lt;/code&gt; e le eccezioni in tempo reale.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nuovo-pacchetto-nuget-dotnet-run-per-le-app-pacchettizzate"&gt;Nuovo pacchetto NuGet: dotnet run per le app pacchettizzate&lt;/h2&gt;
&lt;p&gt;Per gli sviluppatori .NET c&amp;rsquo;è un nuovo pacchetto NuGet: &lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;. Dopo l&amp;rsquo;installazione, &lt;code&gt;dotnet run&lt;/code&gt; gestisce tutto l&amp;rsquo;inner loop: build, preparare un pacchetto loose-layout, registrare su Windows e avviare — tutto in un unico step.&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;winapp init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="winapp-ui-ui-automation-dalla-riga-di-comando"&gt;winapp ui: UI Automation dalla riga di comando&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità che apre gli scenari agentici. &lt;code&gt;winapp ui&lt;/code&gt; fornisce accesso completo UI Automation a qualsiasi app Windows in esecuzione — WPF, WinForms, Win32, Electron, WinUI3 — direttamente dal terminale.&lt;/p&gt;
&lt;p&gt;Cosa si può fare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Elencare tutte le finestre di primo livello&lt;/li&gt;
&lt;li&gt;Navigare l&amp;rsquo;albero completo di UI Automation di una finestra&lt;/li&gt;
&lt;li&gt;Cercare elementi per nome, tipo o ID di automazione&lt;/li&gt;
&lt;li&gt;Cliccare, invocare e impostare valori&lt;/li&gt;
&lt;li&gt;Fare screenshot&lt;/li&gt;
&lt;li&gt;Attendere la comparsa di elementi — ideale per la sincronizzazione dei test&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Combinare &lt;code&gt;winapp ui&lt;/code&gt; con &lt;code&gt;winapp run&lt;/code&gt; crea un workflow completo build → avvio → verifica dal terminale. Un agente può eseguire l&amp;rsquo;app, ispezionare lo stato dell&amp;rsquo;UI e validare il risultato.&lt;/p&gt;
&lt;h2 id="altre-novità"&gt;Altre novità&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt;: Rimuove un pacchetto sideloaded quando si è finito.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: Aggiunge un alias per avviare l&amp;rsquo;app per nome dal terminale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tab completion&lt;/strong&gt;: Configura il completamento PowerShell con un singolo comando.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="come-ottenerlo"&gt;Come ottenerlo&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;winget install Microsoft.WinAppCli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g @microsoft/winappcli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La CLI è in preview pubblica. Il &lt;a href="https://github.com/microsoft/WinAppCli"&gt;repository su GitHub&lt;/a&gt; ha la documentazione completa e l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;annuncio originale&lt;/a&gt; ha tutti i dettagli.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.117: Gli Agent Stanno Ottenendo i Propri Branch Git e Io Sono Tutto a Favore</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117 porta l'isolamento con worktree per le sessioni degli agent, la modalità Autopilot persistente e il supporto per i subagent. Il workflow di coding agentico è diventato molto più reale.</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/vscode-1-117-agents-autopilot-worktrees/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La linea tra &amp;ldquo;assistente IA&amp;rdquo; e &amp;ldquo;compagno di squadra IA&amp;rdquo; continua ad assottigliarsi. VS Code 1.117 è appena uscito e le &lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;note di rilascio complete&lt;/a&gt; sono piene, ma la storia è chiara: gli agent stanno diventando cittadini di prima classe nel tuo workflow di sviluppo.&lt;/p&gt;
&lt;p&gt;Ecco cosa conta davvero.&lt;/p&gt;
&lt;h2 id="la-modalità-autopilot-finalmente-ricorda-la-tua-preferenza"&gt;La modalità Autopilot finalmente ricorda la tua preferenza&lt;/h2&gt;
&lt;p&gt;Prima, dovevi riattivare Autopilot ogni volta che iniziavi una nuova sessione. Fastidioso. Ora la tua modalità di permessi persiste tra le sessioni, e puoi configurare il valore predefinito.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Agent Host supporta tre configurazioni di sessione:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — gli strumenti chiedono conferma prima di eseguire&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass&lt;/strong&gt; — approva tutto automaticamente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — completamente autonomo, risponde alle proprie domande e va avanti&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se stai creando un nuovo progetto .NET con migrazioni, Docker e CI — impostalo su Autopilot una volta e dimenticatene. Quella preferenza resta.&lt;/p&gt;
&lt;h2 id="worktree-e-isolamento-git-per-le-sessioni-degli-agent"&gt;Worktree e isolamento git per le sessioni degli agent&lt;/h2&gt;
&lt;p&gt;Questa è la grande novità. Le sessioni degli agent ora supportano l&amp;rsquo;isolamento completo con worktree e git. Questo significa che quando un agent lavora su un task, ottiene il proprio branch e la propria directory di lavoro. Il tuo branch principale resta intatto.&lt;/p&gt;
&lt;p&gt;Ancora meglio — Copilot CLI genera nomi di branch significativi per queste sessioni worktree. Basta con &lt;code&gt;agent-session-abc123&lt;/code&gt;. Ottieni qualcosa che descrive davvero cosa sta facendo l&amp;rsquo;agent.&lt;/p&gt;
&lt;p&gt;Per gli sviluppatori .NET che gestiscono più feature branch o correggono bug mentre un lungo task di scaffolding è in esecuzione, questo è un punto di svolta. Puoi avere un agent che costruisce i tuoi controller API in un worktree mentre tu fai debug di un problema nel service layer in un altro. Nessun conflitto. Nessun stashing. Nessun casino.&lt;/p&gt;
&lt;h2 id="subagent-e-team-di-agent"&gt;Subagent e team di agent&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;Agent Host Protocol ora supporta i subagent. Un agent può avviare altri agent per gestire parti di un task. Pensalo come delegare — il tuo agent principale coordina, e agent specializzati si occupano dei pezzi.&lt;/p&gt;
&lt;p&gt;Siamo ancora all&amp;rsquo;inizio, ma il potenziale per i workflow .NET è ovvio. Immagina un agent che gestisce le tue migrazioni EF Core mentre un altro configura i tuoi test di integrazione. Non siamo ancora completamente lì, ma il fatto che il supporto al protocollo arrivi ora significa che gli strumenti seguiranno velocemente.&lt;/p&gt;
&lt;h2 id="loutput-del-terminale-incluso-automaticamente-quando-gli-agent-inviano-input"&gt;L&amp;rsquo;output del terminale incluso automaticamente quando gli agent inviano input&lt;/h2&gt;
&lt;p&gt;Piccolo ma significativo. Quando un agent invia input al terminale, l&amp;rsquo;output del terminale viene ora automaticamente incluso nel contesto. Prima, l&amp;rsquo;agent doveva fare un turno extra solo per leggere cosa era successo.&lt;/p&gt;
&lt;p&gt;Se hai mai visto un agent eseguire &lt;code&gt;dotnet build&lt;/code&gt;, fallire, e poi fare un altro giro solo per vedere l&amp;rsquo;errore — quella frizione è sparita. Vede l&amp;rsquo;output immediatamente e reagisce.&lt;/p&gt;
&lt;h2 id="lapp-agents-su-macos-si-aggiorna-automaticamente"&gt;L&amp;rsquo;app Agents su macOS si aggiorna automaticamente&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;app standalone Agents su macOS ora si aggiorna automaticamente. Basta scaricare manualmente nuove versioni. Resta semplicemente aggiornata.&lt;/p&gt;
&lt;h2 id="le-cose-più-piccole-che-vale-la-pena-sapere"&gt;Le cose più piccole che vale la pena sapere&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Gli &lt;strong&gt;hover su package.json&lt;/strong&gt; ora mostrano sia la versione installata che l&amp;rsquo;ultima disponibile. Utile se gestisci strumenti npm insieme ai tuoi progetti .NET.&lt;/li&gt;
&lt;li&gt;Le &lt;strong&gt;immagini nei commenti JSDoc&lt;/strong&gt; vengono renderizzate correttamente negli hover e nei completamenti.&lt;/li&gt;
&lt;li&gt;Le &lt;strong&gt;sessioni Copilot CLI&lt;/strong&gt; ora indicano se sono state create da VS Code o esternamente — comodo quando salti tra i terminali.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI, Claude Code e Gemini CLI&lt;/strong&gt; sono riconosciuti come tipi di shell. L&amp;rsquo;editor sa cosa stai eseguendo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="il-punto-chiave"&gt;Il punto chiave&lt;/h2&gt;
&lt;p&gt;VS Code 1.117 non è un dump di feature appariscenti. È infrastruttura. Isolamento con worktree, permessi persistenti, protocolli per subagent — questi sono i mattoni per un workflow dove gli agent gestiscono task reali e paralleli senza pestare il tuo codice.&lt;/p&gt;
&lt;p&gt;Se stai sviluppando con .NET e non ti sei ancora buttato nel workflow agentico, onestamente, ora è il momento di iniziare.&lt;/p&gt;</content:encoded></item><item><title>Docker Sandbox permette agli agenti Copilot di refactorizzare il codice senza mettere a rischio la tua macchina</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox offre agli agenti di GitHub Copilot una microVM sicura dove possono refactorizzare liberamente — nessun prompt di permessi, nessun rischio per il tuo host. Ecco perché questo cambia tutto per la modernizzazione .NET su larga scala.</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/copilot-docker-sandbox-agentic-refactoring/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se hai usato la modalità agente di Copilot per qualcosa di più di piccole modifiche, conosci il dolore. Ogni scrittura di file, ogni comando nel terminale — un altro prompt di permessi. Ora immagina di farlo su 50 progetti. Non è divertente.&lt;/p&gt;
&lt;p&gt;Il team di Azure ha appena pubblicato un post su &lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;Docker Sandbox per gli agenti di GitHub Copilot&lt;/a&gt;, e onestamente, è uno dei miglioramenti più pratici che abbia mai visto nel tooling agentico. Utilizza microVM per dare a Copilot un ambiente completamente isolato dove può fare di tutto — installare pacchetti, eseguire build, lanciare test — senza toccare il tuo sistema host.&lt;/p&gt;
&lt;h2 id="cosa-ti-offre-realmente-docker-sandbox"&gt;Cosa ti offre realmente Docker Sandbox&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;idea di base è semplice: avviare una microVM leggera con un ambiente Linux completo, sincronizzare il tuo workspace al suo interno e lasciare che l&amp;rsquo;agente Copilot operi liberamente dentro. Quando ha finito, le modifiche vengono sincronizzate indietro.&lt;/p&gt;
&lt;p&gt;Ecco cosa lo rende più di un semplice &amp;ldquo;eseguire roba in un container&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sincronizzazione bidirezionale del workspace&lt;/strong&gt; che preserva i percorsi assoluti. La struttura del tuo progetto appare identica dentro la sandbox. Nessun fallimento di build legato ai percorsi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker daemon privato&lt;/strong&gt; in esecuzione dentro la microVM. L&amp;rsquo;agente può costruire ed eseguire container senza mai montare il socket Docker del tuo host. Questo è un grande vantaggio per la sicurezza.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proxy di filtraggio HTTP/HTTPS&lt;/strong&gt; che controllano cosa l&amp;rsquo;agente può raggiungere sulla rete. Tu decidi quali registry ed endpoint sono consentiti. Attacchi alla supply chain da un &lt;code&gt;npm install&lt;/code&gt; malevolo nella sandbox? Bloccati.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modalità YOLO&lt;/strong&gt; — sì, la chiamano proprio così. L&amp;rsquo;agente gira senza prompt di permessi perché letteralmente non può danneggiare il tuo host. Ogni azione distruttiva è contenuta.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="perché-gli-sviluppatori-net-dovrebbero-interessarsi"&gt;Perché gli sviluppatori .NET dovrebbero interessarsi&lt;/h2&gt;
&lt;p&gt;Pensa al lavoro di modernizzazione che così tanti team stanno affrontando in questo momento. Hai una soluzione .NET Framework con 30 progetti e devi migrarla a .NET 9. Sono centinaia di modifiche ai file — file di progetto, aggiornamenti dei namespace, sostituzioni di API, migrazioni NuGet.&lt;/p&gt;
&lt;p&gt;Con Docker Sandbox, puoi puntare un agente Copilot su un progetto, lasciarlo refactorizzare liberamente dentro la microVM, eseguire &lt;code&gt;dotnet build&lt;/code&gt; e &lt;code&gt;dotnet test&lt;/code&gt; per validare, e accettare solo le modifiche che funzionano davvero. Nessun rischio che distrugga accidentalmente il tuo ambiente di sviluppo locale mentre sperimenta.&lt;/p&gt;
&lt;p&gt;Il post descrive anche l&amp;rsquo;esecuzione di una &lt;strong&gt;flotta di agenti paralleli&lt;/strong&gt; — ognuno nella propria sandbox — che lavorano su diversi progetti contemporaneamente. Per soluzioni .NET di grandi dimensioni o architetture a microservizi, questo è un enorme risparmio di tempo. Un agente per servizio, tutti in esecuzione isolata, tutti validati indipendentemente.&lt;/p&gt;
&lt;h2 id="laspetto-sicurezza-conta"&gt;L&amp;rsquo;aspetto sicurezza conta&lt;/h2&gt;
&lt;p&gt;Ecco il punto che la maggior parte delle persone trascura: quando lasci che un agente IA esegua comandi arbitrari, gli stai affidando l&amp;rsquo;intera macchina. Docker Sandbox ribalta questo modello. L&amp;rsquo;agente ottiene piena autonomia in un ambiente usa e getta. Il proxy di rete assicura che possa scaricare solo da fonti approvate. Il tuo filesystem host, il Docker daemon e le tue credenziali restano intatti.&lt;/p&gt;
&lt;p&gt;Per i team con requisiti di compliance — e questo vale per la maggior parte delle aziende .NET — questa è la differenza tra &amp;ldquo;non possiamo usare l&amp;rsquo;IA agentica&amp;rdquo; e &amp;ldquo;possiamo adottarla in sicurezza.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;Docker Sandbox risolve la tensione fondamentale del coding agentico: gli agenti hanno bisogno di libertà per essere utili, ma la libertà sulla tua macchina host è pericolosa. Le microVM ti danno entrambe le cose. Se stai pianificando qualsiasi refactoring o modernizzazione .NET su larga scala, vale la pena configurarlo ora. La combinazione dell&amp;rsquo;intelligenza di codice di Copilot con un ambiente di esecuzione sicuro è esattamente ciò che i team di produzione stavano aspettando.&lt;/p&gt;</content:encoded></item><item><title>Smetti di sorvegliare il tuo terminale: la modalità detached di Aspire cambia il flusso di lavoro</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2 ti permette di eseguire il tuo AppHost in background e riprenderti il terminale. Combinato con i nuovi comandi CLI e il supporto per gli agenti, è più importante di quanto sembri.</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/aspire-detached-mode-free-your-terminal/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ogni volta che esegui un AppHost di Aspire, il tuo terminale sparisce. Bloccato. Occupato finché non premi Ctrl+C. Devi eseguire un comando veloce? Apri un&amp;rsquo;altra scheda. Vuoi controllare i log? Un&amp;rsquo;altra scheda. È una piccola frizione che si accumula in fretta.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 risolve questo problema. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;ha scritto tutti i dettagli&lt;/a&gt;, e onestamente, questa è una di quelle funzionalità che cambia immediatamente il modo in cui lavori.&lt;/p&gt;
&lt;h2 id="modalità-detached-un-comando-terminale-recuperato"&gt;Modalità detached: un comando, terminale recuperato&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;aspire start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questa è la scorciatoia per &lt;code&gt;aspire run --detach&lt;/code&gt;. Il tuo AppHost si avvia in background e riottieni il terminale immediatamente. Niente schede extra. Niente multiplexer di terminale. Solo il tuo prompt, pronto all&amp;rsquo;uso.&lt;/p&gt;
&lt;h2 id="gestire-ciò-che-è-in-esecuzione"&gt;Gestire ciò che è in esecuzione&lt;/h2&gt;
&lt;p&gt;Il punto è questo — eseguire in background è utile solo se riesci a gestire ciò che c&amp;rsquo;è là fuori. Aspire 13.2 include un set completo di comandi CLI proprio per questo:&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;&lt;span class="c1"&gt;# List all running AppHosts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire ps
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Inspect the state of a specific AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire describe
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Stream logs from a running AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire logs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Stop a specific AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo trasforma il CLI di Aspire in un vero gestore di processi. Puoi avviare più AppHost, controllare il loro stato, seguire i loro log e spegnerli — tutto da un&amp;rsquo;unica sessione di terminale.&lt;/p&gt;
&lt;h2 id="combinalo-con-la-modalità-isolata"&gt;Combinalo con la modalità isolata&lt;/h2&gt;
&lt;p&gt;La modalità detached si abbina naturalmente con la modalità isolata. Vuoi eseguire due istanze dello stesso progetto in background senza conflitti di porta?&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;aspire start --isolated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire start --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ognuna ottiene porte casuali, secret separati e il proprio ciclo di vita. Usa &lt;code&gt;aspire ps&lt;/code&gt; per vedere entrambe, &lt;code&gt;aspire stop&lt;/code&gt; per fermare quella di cui non hai più bisogno.&lt;/p&gt;
&lt;h2 id="perché-questo-è-enorme-per-gli-agenti-di-codice"&gt;Perché questo è enorme per gli agenti di codice&lt;/h2&gt;
&lt;p&gt;Qui diventa davvero interessante. Un agente di codice che lavora nel tuo terminale ora può:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Avviare l&amp;rsquo;app con &lt;code&gt;aspire start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Interrogare il suo stato con &lt;code&gt;aspire describe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Controllare i log con &lt;code&gt;aspire logs&lt;/code&gt; per diagnosticare problemi&lt;/li&gt;
&lt;li&gt;Fermarla con &lt;code&gt;aspire stop&lt;/code&gt; quando ha finito&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tutto senza perdere la sessione del terminale. Prima della modalità detached, un agente che eseguiva il tuo AppHost si bloccava nel proprio terminale. Ora può avviare, osservare, iterare e ripulire — esattamente come vorresti che funzionasse un agente autonomo.&lt;/p&gt;
&lt;p&gt;Il team di Aspire ha puntato su questo. Eseguire &lt;code&gt;aspire agent init&lt;/code&gt; configura un file di skill di Aspire che insegna questi comandi agli agenti. Così strumenti come l&amp;rsquo;agente di codice di Copilot possono gestire i tuoi workload Aspire direttamente.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;La modalità detached è un upgrade del flusso di lavoro mascherato da semplice flag. Smetti di cambiare contesto tra i terminali, gli agenti smettono di bloccarsi da soli, e i nuovi comandi CLI ti danno visibilità reale su ciò che è in esecuzione. È pratico, è pulito, e rende il ciclo di sviluppo quotidiano notevolmente più fluido.&lt;/p&gt;
&lt;p&gt;Leggi il &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;post completo&lt;/a&gt; per tutti i dettagli e scarica Aspire 13.2 con &lt;code&gt;aspire update --self&lt;/code&gt;.&lt;/p&gt;</content:encoded></item><item><title>Gli strumenti Azure MCP sono ora integrati in Visual Studio 2022 — Nessuna estensione necessaria</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Gli strumenti Azure MCP vengono distribuiti come parte del carico di lavoro di sviluppo Azure in Visual Studio 2022. Oltre 230 strumenti, 45 servizi Azure, zero estensioni da installare.</description><content:encoded>&lt;blockquote&gt;
&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/azure-mcp-tools-built-into-visual-studio-2022/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se hai usato gli strumenti Azure MCP in Visual Studio tramite l&amp;rsquo;estensione separata, conosci il rituale — installare il VSIX, riavviare, sperare che non si rompa nulla, gestire le incompatibilità di versione. Quella frizione è finita.&lt;/p&gt;
&lt;p&gt;Yun Jung Choi ha &lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/"&gt;annunciato&lt;/a&gt; che gli strumenti Azure MCP vengono ora distribuiti direttamente come parte del carico di lavoro di sviluppo Azure in Visual Studio 2022. Nessuna estensione. Nessun VSIX. Nessun balletto del riavvio.&lt;/p&gt;
&lt;h2 id="cosa-significa-concretamente"&gt;Cosa significa concretamente&lt;/h2&gt;
&lt;p&gt;A partire da Visual Studio 2022 versione 17.14.30, il Azure MCP Server è incluso nel carico di lavoro di sviluppo Azure. Se hai già quel carico di lavoro installato, basta attivarlo in GitHub Copilot Chat e sei a posto.&lt;/p&gt;
&lt;p&gt;Oltre 230 strumenti per 45 servizi Azure — accessibili direttamente dalla finestra di chat. Elenca i tuoi account di archiviazione, fai il deploy di un&amp;rsquo;app ASP.NET Core, diagnostica problemi di App Service, interroga Log Analytics — tutto senza aprire una scheda del browser.&lt;/p&gt;
&lt;h2 id="perché-questo-conta-più-di-quanto-sembri"&gt;Perché questo conta più di quanto sembri&lt;/h2&gt;
&lt;p&gt;Il punto sugli strumenti per sviluppatori è questo: ogni passaggio in più è frizione, e la frizione uccide l&amp;rsquo;adozione. Avere MCP come estensione separata significava incompatibilità di versione, errori di installazione e un&amp;rsquo;altra cosa da tenere aggiornata. Integrarlo nel carico di lavoro significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un unico percorso di aggiornamento&lt;/strong&gt; tramite il Visual Studio Installer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nessuna divergenza di versione&lt;/strong&gt; tra l&amp;rsquo;estensione e l&amp;rsquo;IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sempre aggiornato&lt;/strong&gt; — il MCP Server si aggiorna con i rilasci regolari di VS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Per i team che standardizzano su Azure, questo è un grande vantaggio. Installi il carico di lavoro una volta, attivi gli strumenti, e sono disponibili per ogni sessione.&lt;/p&gt;
&lt;h2 id="cosa-puoi-farci"&gt;Cosa puoi farci&lt;/h2&gt;
&lt;p&gt;Gli strumenti coprono l&amp;rsquo;intero ciclo di vita dello sviluppo tramite Copilot Chat:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Imparare&lt;/strong&gt; — chiedi informazioni sui servizi Azure, best practice, pattern architetturali&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progettare e sviluppare&lt;/strong&gt; — ottieni raccomandazioni sui servizi, configura il codice dell&amp;rsquo;applicazione&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fare deploy&lt;/strong&gt; — provisiona risorse e fai il deploy direttamente dall&amp;rsquo;IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Risolvere problemi&lt;/strong&gt; — interroga i log, verifica lo stato delle risorse, diagnostica problemi in produzione&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un esempio rapido — scrivi questo in Copilot Chat:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;List my storage accounts in my current subscription.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copilot chiama gli strumenti Azure MCP dietro le quinte, interroga le tue sottoscrizioni e restituisce una lista formattata con nomi, posizioni e SKU. Niente portale necessario.&lt;/p&gt;
&lt;h2 id="come-attivarlo"&gt;Come attivarlo&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Aggiorna a Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; o superiore&lt;/li&gt;
&lt;li&gt;Assicurati che il carico di lavoro &lt;strong&gt;Azure development&lt;/strong&gt; sia installato&lt;/li&gt;
&lt;li&gt;Apri GitHub Copilot Chat&lt;/li&gt;
&lt;li&gt;Clicca sul pulsante &lt;strong&gt;Select tools&lt;/strong&gt; (l&amp;rsquo;icona delle due chiavi)&lt;/li&gt;
&lt;li&gt;Attiva &lt;strong&gt;Azure MCP Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tutto qui. Rimane attivato tra le sessioni.&lt;/p&gt;
&lt;h2 id="unavvertenza"&gt;Un&amp;rsquo;avvertenza&lt;/h2&gt;
&lt;p&gt;Gli strumenti sono disattivati per default — devi attivarli manualmente. E gli strumenti specifici per VS 2026 non sono disponibili in VS 2022. La disponibilità degli strumenti dipende anche dai permessi della tua sottoscrizione Azure, come nel portale.&lt;/p&gt;
&lt;h2 id="il-quadro-generale"&gt;Il quadro generale&lt;/h2&gt;
&lt;p&gt;Questo fa parte di una tendenza chiara: MCP sta diventando lo standard per esporre gli strumenti cloud negli IDE di sviluppo. Abbiamo già visto il &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;rilascio stabile di Azure MCP Server 2.0&lt;/a&gt; e integrazioni MCP in VS Code e altri editor. Averlo integrato nel sistema dei carichi di lavoro di Visual Studio è la naturale evoluzione.&lt;/p&gt;
&lt;p&gt;Per noi sviluppatori .NET che viviamo in Visual Studio, questo elimina un altro motivo per fare context-switch verso il portale Azure. E onestamente, meno cambi di scheda si fanno, meglio è.&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>.NET Aspire 13.2 Vuole Essere il Migliore Amico del Tuo Agente IA</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2 punta tutto sullo sviluppo agentico — output CLI strutturato, esecuzioni isolate, ambienti auto-riparanti e dati OpenTelemetry completi perché i tuoi agenti IA possano davvero costruire, eseguire e osservare le tue app.</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/aspire-agentic-development-build-run-observe/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conosci quel momento in cui il tuo agente IA scrive del codice solido, ti entusiasmi, e poi tutto crolla quando prova a &lt;em&gt;eseguire&lt;/em&gt; la cosa? Conflitti di porte, processi fantasma, variabili d&amp;rsquo;ambiente sbagliate — improvvisamente il tuo agente sta bruciando token per risolvere problemi di avvio invece di costruire funzionalità.&lt;/p&gt;
&lt;p&gt;Il team di Aspire ha appena pubblicato un &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;post molto ben pensato&lt;/a&gt; su esattamente questo problema, e la loro risposta è convincente: Aspire 13.2 è progettato non solo per gli umani, ma per gli agenti IA.&lt;/p&gt;
&lt;h2 id="il-problema-è-reale"&gt;Il problema è reale&lt;/h2&gt;
&lt;p&gt;Gli agenti IA sono incredibili nello scrivere codice. Ma consegnare un&amp;rsquo;app full-stack funzionante richiede molto di più che generare file. Devi avviare i servizi nell&amp;rsquo;ordine giusto, gestire le porte, impostare le variabili d&amp;rsquo;ambiente, connettere i database e ottenere feedback quando qualcosa si rompe. Al momento, la maggior parte degli agenti gestisce tutto questo per tentativi — eseguendo comandi, leggendo output di errore, riprovando.&lt;/p&gt;
&lt;p&gt;Aggiungiamo istruzioni Markdown, skill personalizzati e prompt per guidarli, ma sono imprevedibili, non possono essere compilati e costano token solo per essere parsati. Il team di Aspire ha centrato l&amp;rsquo;insight chiave: gli agenti hanno bisogno di &lt;strong&gt;compilatori e API strutturate&lt;/strong&gt;, non di più Markdown.&lt;/p&gt;
&lt;h2 id="aspire-come-infrastruttura-per-agenti"&gt;Aspire come infrastruttura per agenti&lt;/h2&gt;
&lt;p&gt;Ecco cosa porta Aspire 13.2 al tavolo dello sviluppo agentico:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tutto il tuo stack in codice tipizzato.&lt;/strong&gt; L&amp;rsquo;AppHost definisce la tua topologia completa — API, frontend, database, cache — in TypeScript o C# compilabile:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kr"&gt;from&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;./.modules/aspire.js&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;postgres&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addPostgres&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;pg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;addDatabase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;catalog&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addRedis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;cache&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addNodeApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;src/index.ts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;PORT&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;postgres&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;waitFor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Un agente può leggere questo per capire la topologia dell&amp;rsquo;app, aggiungere risorse, collegare connessioni e &lt;em&gt;compilare per verificare&lt;/em&gt;. Il compilatore gli dice immediatamente se qualcosa è sbagliato. Niente congetture, niente tentativi con i file di configurazione.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un solo comando per governarli tutti.&lt;/strong&gt; Invece di far destreggiate gli agenti tra &lt;code&gt;docker compose up&lt;/code&gt;, &lt;code&gt;npm run dev&lt;/code&gt; e script di avvio database, tutto è semplicemente &lt;code&gt;aspire start&lt;/code&gt;. Tutte le risorse si avviano nell&amp;rsquo;ordine giusto, sulle porte giuste, con la configurazione giusta. I processi a lunga durata non bloccano l&amp;rsquo;agente — Aspire li gestisce.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modalità isolata per agenti paralleli.&lt;/strong&gt; Con &lt;code&gt;--isolated&lt;/code&gt;, ogni esecuzione di Aspire ottiene le proprie porte casuali e segreti utente separati. Hai più agenti che lavorano su git worktree? Non entreranno in collisione. Questo è enorme per strumenti come gli agenti in background di VS Code che creano ambienti paralleli.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Occhi da agente attraverso la telemetria.&lt;/strong&gt; Qui diventa davvero potente. La CLI di Aspire espone dati OpenTelemetry completi durante lo sviluppo — tracce, metriche, log strutturati. Il tuo agente non sta solo leggendo l&amp;rsquo;output della console sperando per il meglio. Può tracciare una richiesta fallita tra i servizi, profilare endpoint lenti e individuare esattamente dove le cose si rompono. Questa è osservabilità di livello produzione nel ciclo di sviluppo.&lt;/p&gt;
&lt;h2 id="lanalogia-dei-parabordi-del-bowling"&gt;L&amp;rsquo;analogia dei parabordi del bowling&lt;/h2&gt;
&lt;p&gt;Il team di Aspire usa un&amp;rsquo;ottima analogia: pensa ad Aspire come ai parabordi della pista da bowling per gli agenti IA. Se l&amp;rsquo;agente non è perfetto (e non lo sarà), i parabordi impediscono che tiri nel canale. La definizione dello stack previene la misconfigurazioni, il compilatore cattura gli errori, la CLI gestisce i processi e la telemetria fornisce il ciclo di feedback.&lt;/p&gt;
&lt;p&gt;Combina questo con qualcosa come Playwright CLI, e il tuo agente può davvero &lt;em&gt;usare&lt;/em&gt; la tua app — cliccando nei flussi, controllando il DOM, vedendo le cose rotte nella telemetria, sistemando il codice, riavviando e testando di nuovo. Costruire, eseguire, osservare, sistemare. Questo è il ciclo di sviluppo autonomo che stavamo inseguendo.&lt;/p&gt;
&lt;h2 id="per-iniziare"&gt;Per iniziare&lt;/h2&gt;
&lt;p&gt;Nuovo con Aspire? Installa la CLI da &lt;a href="https://get.aspire.dev"&gt;get.aspire.dev&lt;/a&gt; e segui la &lt;a href="https://aspire.dev/get-started/first-app"&gt;guida introduttiva&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Già usi Aspire? Esegui &lt;code&gt;aspire update --self&lt;/code&gt; per ottenere la 13.2, poi punta il tuo agente di coding preferito al tuo repo. Potresti stupirti di quanto va più lontano con i guardrail di Aspire.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 non è più solo un framework per app distribuite — sta diventando infrastruttura essenziale per agenti. Definizioni di stack strutturate, avvio con un comando, esecuzioni parallele isolate e telemetria in tempo reale danno agli agenti IA esattamente ciò di cui hanno bisogno per passare dallo scrivere codice al consegnare app.&lt;/p&gt;
&lt;p&gt;Leggi il &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;post completo&lt;/a&gt; dal team di Aspire per tutti i dettagli e i video dimostrativi.&lt;/p&gt;</content:encoded></item><item><title>La Modalità Isolata di Aspire Risolve l'Incubo dei Conflitti di Porta per lo Sviluppo Parallelo</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2 introduce la modalità --isolated: porte random, segreti separati e zero collisioni quando si eseguono più istanze dello stesso AppHost. Perfetto per agenti IA, worktree e workflow paralleli.</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/aspire-isolated-mode-parallel-instances/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se hai mai provato a eseguire due istanze dello stesso progetto contemporaneamente, conosci il dolore. La porta 8080 è già in uso. La porta 17370 è occupata. Uccidi qualcosa, riavvia, destreggiati tra le variabili d&amp;rsquo;ambiente — è un killer della produttività.&lt;/p&gt;
&lt;p&gt;Questo problema sta peggiorando, non migliorando. Gli agenti IA creano git worktree per lavorare in modo indipendente. Gli agenti in background avviano ambienti separati. Gli sviluppatori fanno checkout dello stesso repo due volte per i feature branch. Ognuno di questi scenari sbatte contro lo stesso muro: due istanze della stessa app che lottano per le stesse porte.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 risolve questo con un singolo flag. James Newton-King del team Aspire ha &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;scritto tutti i dettagli&lt;/a&gt;, ed è una di quelle feature &amp;ldquo;perché non l&amp;rsquo;avevamo già?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="la-soluzione---isolated"&gt;La soluzione: &lt;code&gt;--isolated&lt;/code&gt;&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;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo è tutto. Ogni esecuzione ottiene:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Porte random&lt;/strong&gt; — niente più collisioni tra istanze&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segreti utente isolati&lt;/strong&gt; — connection string e chiavi API restano separate per istanza&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nessuna riassegnazione manuale delle porte. Nessun giocoleria con le variabili d&amp;rsquo;ambiente. Ogni esecuzione ottiene un ambiente pulito e privo di collisioni automaticamente.&lt;/p&gt;
&lt;h2 id="scenari-reali-dove-questo-brilla"&gt;Scenari reali dove questo brilla&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Checkout multipli.&lt;/strong&gt; Hai un feature branch in una directory e un bugfix in un&amp;rsquo;altra:&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;&lt;span class="c1"&gt;# Terminal 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-feature
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Terminal 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-bugfix
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Entrambi girano senza conflitti. La dashboard mostra cosa sta girando e dove.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agenti in background in VS Code.&lt;/strong&gt; Quando l&amp;rsquo;agente in background di Copilot Chat crea un git worktree per lavorare sul tuo codice in modo indipendente, potrebbe aver bisogno di eseguire il tuo AppHost Aspire. Senza &lt;code&gt;--isolated&lt;/code&gt;, c&amp;rsquo;è un conflitto di porte con il tuo worktree principale. Con esso, entrambe le istanze funzionano e basta.&lt;/p&gt;
&lt;p&gt;Lo skill Aspire distribuito con &lt;code&gt;aspire agent init&lt;/code&gt; istruisce automaticamente gli agenti a usare &lt;code&gt;--isolated&lt;/code&gt; quando lavorano nei worktree. Quindi l&amp;rsquo;agente in background di Copilot dovrebbe gestire tutto nativamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Test di integrazione in parallelo allo sviluppo.&lt;/strong&gt; Hai bisogno di eseguire test contro un AppHost live mentre continui a sviluppare funzionalità? La modalità isolata dà a ogni contesto le sue porte e la sua configurazione.&lt;/p&gt;
&lt;h2 id="come-funziona-sotto-il-cofano"&gt;Come funziona sotto il cofano&lt;/h2&gt;
&lt;p&gt;Quando passi &lt;code&gt;--isolated&lt;/code&gt;, la CLI genera un ID di istanza unico per l&amp;rsquo;esecuzione. Questo guida due comportamenti:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Randomizzazione delle porte&lt;/strong&gt; — invece di legarsi a porte prevedibili definite nella configurazione del tuo AppHost, la modalità isolata sceglie porte casuali disponibili per tutto — la dashboard, gli endpoint dei servizi, tutto. Il service discovery si adatta automaticamente, così i servizi si trovano a vicenda indipendentemente da quali porte ottengono.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Isolamento dei segreti&lt;/strong&gt; — ogni esecuzione isolata ottiene il proprio store di segreti utente, identificato dall&amp;rsquo;ID dell&amp;rsquo;istanza. Connection string e chiavi API di un&amp;rsquo;esecuzione non trapelano in un&amp;rsquo;altra.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Il tuo codice non ha bisogno di modifiche. Il service discovery di Aspire risolve gli endpoint a runtime, quindi tutto si connette correttamente indipendentemente dall&amp;rsquo;assegnazione delle porte.&lt;/p&gt;
&lt;h2 id="quando-usarlo"&gt;Quando usarlo&lt;/h2&gt;
&lt;p&gt;Usa &lt;code&gt;--isolated&lt;/code&gt; quando esegui più istanze dello stesso AppHost contemporaneamente — che si tratti di sviluppo parallelo, test automatizzati, agenti IA o git worktree. Per lo sviluppo a singola istanza dove preferisci porte prevedibili, il normale &lt;code&gt;aspire run&lt;/code&gt; funziona ancora benissimo.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;La modalità isolata è una piccola feature che risolve un problema reale e sempre più comune. Man mano che lo sviluppo assistito da IA ci spinge verso più workflow paralleli — agenti multipli, worktree multipli, contesti multipli — la capacità di semplicemente avviare un&amp;rsquo;altra istanza senza lottare per le porte è essenziale.&lt;/p&gt;
&lt;p&gt;Leggi il &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;post completo&lt;/a&gt; per tutti i dettagli tecnici e provalo con &lt;code&gt;aspire update --self&lt;/code&gt; per ottenere la 13.2.&lt;/p&gt;</content:encoded></item><item><title>Quell'Impostazione delle Finestre Flottanti di Visual Studio Che Non Conoscevi (Ma Dovresti)</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Un'impostazione nascosta di Visual Studio ti dà il pieno controllo sulle finestre flottanti — voci indipendenti nella barra delle applicazioni, comportamento corretto con più monitor e integrazione perfetta con FancyZones. Un menu a tendina cambia 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/visual-studio-floating-windows-powertoys/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se usate più monitor con Visual Studio (e onestamente, chi non lo fa al giorno d&amp;rsquo;oggi?), probabilmente avete sperimentato la frustrazione: le finestre degli strumenti flottanti scompaiono quando minimizzate l&amp;rsquo;IDE principale, restano sempre sopra a tutto il resto, e non appaiono come pulsanti separati nella barra delle applicazioni. Funziona per alcuni workflow, ma per configurazioni multi-monitor è frustrante.&lt;/p&gt;
&lt;p&gt;Mads Kristensen del team di Visual Studio &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;ha condiviso un&amp;rsquo;impostazione poco conosciuta&lt;/a&gt; che cambia completamente il comportamento delle finestre flottanti. Un menu a tendina. Tutto qui.&lt;/p&gt;
&lt;h2 id="limpostazione"&gt;L&amp;rsquo;impostazione&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tools &amp;gt; Options &amp;gt; Environment &amp;gt; Windows &amp;gt; Floating Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il menu a tendina &amp;ldquo;These floating windows are owned by the main window&amp;rdquo; ha tre opzioni:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — indipendenza totale. Ogni finestra flottante ha la propria voce nella barra delle applicazioni e si comporta come una normale finestra di Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (predefinito) — i documenti flottano liberamente, le finestre degli strumenti restano legate all&amp;rsquo;IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — comportamento classico di Visual Studio, tutto legato alla finestra principale.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="perché-none-è-la-scelta-giusta-per-configurazioni-multi-monitor"&gt;Perché &amp;ldquo;None&amp;rdquo; è la scelta giusta per configurazioni multi-monitor&lt;/h2&gt;
&lt;p&gt;Impostatelo su &lt;strong&gt;None&lt;/strong&gt; e improvvisamente tutte le vostre finestre flottanti di strumenti e documenti si comportano come vere applicazioni Windows. Appaiono nella barra delle applicazioni, restano visibili quando minimizzate la finestra principale di Visual Studio, e smettono di forzarsi in primo piano.&lt;/p&gt;
&lt;p&gt;Combinatelo con &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; ed è un vero game changer. Create layout personalizzati sui vostri monitor, agganciate l&amp;rsquo;Esplora Soluzioni in una zona, il debugger in un&amp;rsquo;altra, e i file di codice dove volete. Tutto resta al suo posto, tutto è accessibile indipendentemente, e il vostro spazio di lavoro risulta organizzato invece che caotico.&lt;/p&gt;
&lt;h2 id="raccomandazioni-rapide"&gt;Raccomandazioni rapide&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utenti avanzati multi-monitor&lt;/strong&gt;: Impostate su &lt;strong&gt;None&lt;/strong&gt;, abbinate con FancyZones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Utenti occasionali delle finestre flottanti&lt;/strong&gt;: &lt;strong&gt;Tool Windows&lt;/strong&gt; (predefinito) è un buon compromesso&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workflow tradizionale&lt;/strong&gt;: &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; mantiene tutto classico&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consiglio pro: &lt;strong&gt;Ctrl + doppio clic&lt;/strong&gt; sulla barra del titolo di qualsiasi finestra degli strumenti per renderla flottante o agganciarla istantaneamente. Non serve riavviare dopo aver cambiato l&amp;rsquo;impostazione.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;È una di quelle impostazioni del tipo &amp;ldquo;non ci posso credere che non lo sapevo&amp;rdquo;. Se le finestre flottanti in Visual Studio vi hanno mai infastidito, andate a cambiare questa impostazione adesso.&lt;/p&gt;
&lt;p&gt;Leggete il &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;post completo&lt;/a&gt; per i dettagli e gli screenshot.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.116 — L'App Agents Ottiene Navigazione da Tastiera e Completamenti per il Contesto dei File</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116 si concentra sulla rifinitura dell'app Agents — scorciatoie da tastiera dedicate, miglioramenti dell'accessibilità, completamenti per il contesto dei file e risoluzione dei link CSS @import.</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/vscode-1-116-agents-app-updates/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.116 è il rilascio di aprile 2026, e sebbene sia più leggero di alcuni aggiornamenti recenti, i cambiamenti sono mirati e significativi — specialmente se usate l&amp;rsquo;app Agents quotidianamente.&lt;/p&gt;
&lt;p&gt;Ecco cosa è arrivato, in base alle &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;note di rilascio ufficiali&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="miglioramenti-dellapp-agents"&gt;Miglioramenti dell&amp;rsquo;app Agents&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;app Agents continua a maturare con un polishing dell&amp;rsquo;usabilità che fa una vera differenza nei flussi di lavoro quotidiani:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scorciatoie da tastiera dedicate&lt;/strong&gt; — ora potete mettere a fuoco la vista Changes, l&amp;rsquo;albero dei file all&amp;rsquo;interno di Changes e la vista delle Personalizzazioni della Chat con comandi e scorciatoie da tastiera dedicati. Se cliccavate ovunque nell&amp;rsquo;app Agents per navigare, questo porta flussi di lavoro completamente controllabili da tastiera.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dialogo di aiuto per l&amp;rsquo;accessibilità&lt;/strong&gt; — premere &lt;code&gt;Alt+F1&lt;/code&gt; nella casella di input della chat ora apre un dialogo di aiuto per l&amp;rsquo;accessibilità che mostra i comandi e le scorciatoie disponibili. Gli utenti di screen reader possono anche controllare la verbosità degli annunci. Una buona accessibilità beneficia tutti.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Completamenti per il contesto dei file&lt;/strong&gt; — digitate &lt;code&gt;#&lt;/code&gt; nella chat dell&amp;rsquo;app Agents per attivare i completamenti per il contesto dei file limitati al vostro workspace corrente. Questa è una di quelle piccole migliorie della qualità della vita che velocizzano ogni interazione — niente più percorsi completi dei file quando si referenzia il codice.&lt;/p&gt;
&lt;h2 id="risoluzione-dei-link-css-import"&gt;Risoluzione dei link CSS &lt;code&gt;@import&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Ottimo per gli sviluppatori frontend: VS Code ora risolve i riferimenti CSS &lt;code&gt;@import&lt;/code&gt; che usano percorsi di node_modules. Potete fare &lt;code&gt;Ctrl+clic&lt;/code&gt; attraverso import come &lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt; quando usate bundler. Piccolo ma elimina un punto di attrito nei workflow CSS.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;VS Code 1.116 riguarda il raffinamento — rendere l&amp;rsquo;app Agents più navigabile, più accessibile e più amichevole con la tastiera. Se passate molto tempo nell&amp;rsquo;app Agents (e sospetto che molti di noi lo facciano), questi cambiamenti si sommano.&lt;/p&gt;
&lt;p&gt;Consultate le &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;note di rilascio complete&lt;/a&gt; per l&amp;rsquo;elenco completo.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — Notifiche del Terminale in Background, Modalità Agente SSH e Altro</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115 porta notifiche del terminale in background per gli agenti, hosting remoto di agenti tramite SSH, incolla file nei terminali e tracciamento delle modifiche con riconoscimento di sessione. Ecco cosa conta per gli sviluppatori .NET.</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/vscode-1-115-agent-improvements/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.115 è appena &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;uscito&lt;/a&gt;, e sebbene sia un rilascio più leggero in termini di funzionalità principali, i miglioramenti relativi agli agenti sono genuinamente utili se lavori quotidianamente con assistenti di codice basati su IA.&lt;/p&gt;
&lt;p&gt;Lasciami evidenziare cosa vale davvero la pena sapere.&lt;/p&gt;
&lt;h2 id="i-terminali-in-background-comunicano-con-gli-agenti"&gt;I terminali in background comunicano con gli agenti&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità di punta. I terminali in background ora notificano automaticamente gli agenti quando i comandi vengono completati, inclusi il codice di uscita e l&amp;rsquo;output del terminale. I prompt di input nei terminali in background vengono anche rilevati e mostrati all&amp;rsquo;utente.&lt;/p&gt;
&lt;p&gt;Perché è importante? Se hai usato la modalità agente di Copilot per eseguire comandi di build o suite di test in background, conosci il dolore del &amp;ldquo;ma è già finito?&amp;rdquo; — i terminali in background erano essenzialmente spara-e-dimentica. Ora l&amp;rsquo;agente viene notificato quando il tuo &lt;code&gt;dotnet build&lt;/code&gt; o &lt;code&gt;dotnet test&lt;/code&gt; è completato, vede l&amp;rsquo;output e può reagire di conseguenza. È un piccolo cambiamento che rende i flussi di lavoro guidati dagli agenti significativamente più affidabili.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;è anche un nuovo strumento &lt;code&gt;send_to_terminal&lt;/code&gt; che permette agli agenti di inviare comandi ai terminali in background con conferma dell&amp;rsquo;utente, risolvendo il problema dove &lt;code&gt;run_in_terminal&lt;/code&gt; con un timeout spostava i terminali in background e li rendeva di sola lettura.&lt;/p&gt;
&lt;h2 id="hosting-remoto-di-agenti-tramite-ssh"&gt;Hosting remoto di agenti tramite SSH&lt;/h2&gt;
&lt;p&gt;VS Code ora supporta la connessione a macchine remote tramite SSH, installando automaticamente la CLI e avviandola in modalità host di agenti. Questo significa che le tue sessioni di agenti IA possono puntare direttamente ad ambienti remoti — utile per gli sviluppatori .NET che compilano e testano su server Linux o VM nel cloud.&lt;/p&gt;
&lt;h2 id="tracciamento-delle-modifiche-nelle-sessioni-degli-agenti"&gt;Tracciamento delle modifiche nelle sessioni degli agenti&lt;/h2&gt;
&lt;p&gt;Le modifiche ai file effettuate durante le sessioni degli agenti ora vengono tracciate e ripristinate, con diff, annulla/ripristina e ripristino dello stato. Se un agente apporta modifiche al tuo codice e qualcosa va storto, puoi vedere esattamente cosa è cambiato e fare il rollback. Tranquillità nel lasciare che gli agenti modifichino la tua codebase.&lt;/p&gt;
&lt;h2 id="riconoscimento-delle-schede-del-browser-e-altri-miglioramenti"&gt;Riconoscimento delle schede del browser e altri miglioramenti&lt;/h2&gt;
&lt;p&gt;Alcune aggiunte aggiuntive per la qualità della vita:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tracciamento delle schede del browser&lt;/strong&gt; — la chat ora può tracciare e collegare le schede del browser aperte durante una sessione, così gli agenti possono fare riferimento alle pagine web che stai guardando&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incolla file nel terminale&lt;/strong&gt; — incolla file (incluse immagini) nel terminale con Ctrl+V, trascinamento o clic destro&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copertura dei test nella minimap&lt;/strong&gt; — gli indicatori di copertura dei test ora appaiono nella minimap per una panoramica visiva rapida&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pinch-to-zoom su Mac&lt;/strong&gt; — il browser integrato supporta i gesti pinch-to-zoom&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diritti Copilot nelle Sessioni&lt;/strong&gt; — la barra di stato mostra le informazioni di utilizzo nella vista Sessioni&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Favicon in Vai al File&lt;/strong&gt; — le pagine web aperte mostrano le favicon nella lista di selezione rapida&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;VS Code 1.115 è un rilascio incrementale, ma i miglioramenti degli agenti — notifiche del terminale in background, hosting di agenti SSH e tracciamento delle modifiche — si sommano a un&amp;rsquo;esperienza notevolmente più fluida per lo sviluppo assistito dall&amp;rsquo;IA. Se stai usando la modalità agente di Copilot per progetti .NET, questi sono il tipo di miglioramenti di qualità della vita che riducono l&amp;rsquo;attrito quotidiano.&lt;/p&gt;
&lt;p&gt;Dai un&amp;rsquo;occhiata alle &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;note di rilascio complete&lt;/a&gt; per ogni dettaglio.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 include una CLI per la documentazione — e anche il tuo agente IA può usarla</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2 aggiunge aspire docs — una CLI per cercare, esplorare e leggere la documentazione ufficiale senza uscire dal terminale. Funziona anche come strumento per agenti IA. Ecco perché è importante.</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/aspire-docs-cli-ai-skills/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conosci quel momento in cui sei immerso in un Aspire AppHost, stai collegando integrazioni, e devi controllare esattamente quali parametri si aspetta l&amp;rsquo;integrazione Redis? Fai alt-tab al browser, cerchi su aspire.dev, strizzi gli occhi sulla documentazione delle API, poi torni al tuo editor. Contesto perso. Flusso interrotto.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 ha appena &lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;rilasciato una soluzione per questo&lt;/a&gt;. La CLI &lt;code&gt;aspire docs&lt;/code&gt; ti permette di cercare, esplorare e leggere la documentazione ufficiale di Aspire direttamente dal tuo terminale. E siccome è supportata da servizi riutilizzabili, gli agenti IA e le skill possono usare gli stessi comandi per consultare la documentazione invece di allucinare API che non esistono.&lt;/p&gt;
&lt;h2 id="il-problema-che-questo-risolve-davvero"&gt;Il problema che questo risolve davvero&lt;/h2&gt;
&lt;p&gt;David Pine lo dice perfettamente nel post originale: gli agenti IA erano &lt;em&gt;terribili&lt;/em&gt; nell&amp;rsquo;aiutare gli sviluppatori a costruire app con Aspire. Raccomandavano &lt;code&gt;dotnet run&lt;/code&gt; invece di &lt;code&gt;aspire run&lt;/code&gt;, facevano riferimento a learn.microsoft.com per docs che vivono su aspire.dev, suggerivano pacchetti NuGet obsoleti, e — il mio preferito — allucinavano API inesistenti.&lt;/p&gt;
&lt;p&gt;Perché? Perché Aspire è stato specifico per .NET molto più a lungo di quanto sia stato poliglotta, e i LLM lavorano con dati di addestramento che precedono le ultime funzionalità. Quando dai a un agente IA la possibilità di consultare la documentazione attuale, smette di tirare a indovinare e inizia a essere utile.&lt;/p&gt;
&lt;h2 id="tre-comandi-zero-schede-del-browser"&gt;Tre comandi, zero schede del browser&lt;/h2&gt;
&lt;p&gt;La CLI è di una semplicità rinfrescante:&lt;/p&gt;
&lt;h3 id="elencare-tutta-la-documentazione"&gt;Elencare tutta la documentazione&lt;/h3&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;aspire docs list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Restituisce ogni pagina di documentazione disponibile su aspire.dev. Serve un output leggibile dalle macchine? Aggiungi &lt;code&gt;--format Json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="cercare-un-argomento"&gt;Cercare un argomento&lt;/h3&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;redis&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cerca sia nei titoli che nei contenuti con punteggio di rilevanza ponderato. Lo stesso motore di ricerca che alimenta internamente gli strumenti di documentazione. Ottieni risultati classificati con titoli, slug e punteggi di rilevanza.&lt;/p&gt;
&lt;h3 id="leggere-una-pagina-intera-o-solo-una-sezione"&gt;Leggere una pagina intera (o solo una sezione)&lt;/h3&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;aspire docs get redis-integration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Trasmette la pagina completa in markdown nel tuo terminale. Ti serve solo una sezione?&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;aspire docs get redis-integration --section &lt;span class="s2"&gt;&amp;#34;Add Redis resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Precisione chirurgica. Niente scrolling su 500 righe. Solo la parte che ti serve.&lt;/p&gt;
&lt;h2 id="laspetto-agente-ia"&gt;L&amp;rsquo;aspetto agente IA&lt;/h2&gt;
&lt;p&gt;Ecco dove diventa interessante per noi sviluppatori che costruiamo con strumenti IA. Gli stessi comandi &lt;code&gt;aspire docs&lt;/code&gt; funzionano come strumenti per agenti IA — tramite skill, server MCP, o semplici wrapper CLI.&lt;/p&gt;
&lt;p&gt;Invece di far inventare al tuo assistente IA delle API Aspire basate su dati di addestramento obsoleti, può chiamare &lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt;, trovare la documentazione ufficiale dell&amp;rsquo;integrazione, leggere la pagina giusta, e darti l&amp;rsquo;approccio documentato. Documentazione in tempo reale e aggiornata — non quello che il modello ha memorizzato sei mesi fa.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;architettura dietro tutto questo è intenzionale. Il team Aspire ha costruito servizi riutilizzabili (&lt;code&gt;IDocsIndexService&lt;/code&gt;, &lt;code&gt;IDocsSearchService&lt;/code&gt;, &lt;code&gt;IDocsFetcher&lt;/code&gt;, &lt;code&gt;IDocsCache&lt;/code&gt;) anziché un&amp;rsquo;integrazione una tantum. Questo significa che lo stesso motore di ricerca funziona per gli umani nel terminale, gli agenti IA nel tuo editor, e l&amp;rsquo;automazione nella tua pipeline CI.&lt;/p&gt;
&lt;h2 id="scenari-reali"&gt;Scenari reali&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Consultazioni rapide nel terminale:&lt;/strong&gt; Sei tre file in profondità e hai bisogno dei parametri di configurazione Redis. Due comandi, novanta secondi, di nuovo al lavoro:&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;redis&amp;#34;&lt;/span&gt; --limit &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs get redis-integration --section &lt;span class="s2"&gt;&amp;#34;Configuration&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Sviluppo assistito dall&amp;rsquo;IA:&lt;/strong&gt; La tua skill di VS Code avvolge i comandi CLI. Chiedi &amp;ldquo;Aggiungi un database PostgreSQL al mio AppHost&amp;rdquo; e l&amp;rsquo;agente consulta i docs reali prima di rispondere. Nessuna allucinazione.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validazione CI/CD:&lt;/strong&gt; La tua pipeline valida le configurazioni AppHost contro la documentazione ufficiale in modo programmatico. L&amp;rsquo;output &lt;code&gt;--format Json&lt;/code&gt; si collega in modo pulito a &lt;code&gt;jq&lt;/code&gt; e altri strumenti.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Basi di conoscenza personalizzate:&lt;/strong&gt; Stai costruendo i tuoi strumenti IA? Invia l&amp;rsquo;output JSON strutturato direttamente nella tua base di conoscenza:&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;monitoring&amp;#34;&lt;/span&gt; --format Json &lt;span class="p"&gt;|&lt;/span&gt; jq &lt;span class="s1"&gt;&amp;#39;[.[] | {slug, title, summary}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Niente web scraping. Niente chiavi API. Gli stessi dati strutturati usati internamente dagli strumenti di documentazione.&lt;/p&gt;
&lt;h2 id="la-documentazione-è-sempre-aggiornata"&gt;La documentazione è sempre aggiornata&lt;/h2&gt;
&lt;p&gt;Questa è la parte che apprezzo di più. La CLI non scarica uno snapshot — interroga aspire.dev con caching basato su ETag. Nel momento in cui la documentazione viene aggiornata, la tua CLI e qualsiasi skill costruita su di essa lo riflette. Niente copie obsolete, niente momenti &amp;ldquo;ma il wiki diceva&amp;hellip;&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt; è una di quelle piccole funzionalità che risolve un problema reale in modo pulito. Gli umani ottengono accesso alla documentazione nativo nel terminale. Gli agenti IA ottengono un modo per smettere di indovinare e iniziare a fare riferimento a docs reali. E tutto è supportato dalla stessa fonte di verità.&lt;/p&gt;
&lt;p&gt;Se stai costruendo con .NET Aspire e non hai ancora provato la CLI, esegui &lt;code&gt;aspire docs search &amp;quot;il-tuo-argomento-qui&amp;quot;&lt;/code&gt; e vedi come ti sembra. Poi considera di integrare quei comandi nella skill IA o nella configurazione di automazione che stai usando — i tuoi agenti ti ringrazieranno.&lt;/p&gt;
&lt;p&gt;Dai un&amp;rsquo;occhiata all&amp;rsquo;&lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;approfondimento di David Pine&lt;/a&gt; su come sono nati gli strumenti di documentazione, e al &lt;a href="https://aspire.dev/reference/cli/commands/aspire-docs/"&gt;riferimento ufficiale della CLI&lt;/a&gt; per tutti i 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>Azure DevOps finalmente sistema l'editor Markdown di cui tutti si lamentavano</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>L'editor Markdown di Azure DevOps per i work item ottiene una distinzione più chiara tra anteprima e modifica. Un piccolo cambiamento che risolve un problema di UX davvero fastidioso.</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/azure-devops-markdown-editor-work-items/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se usi Azure Boards, probabilmente hai vissuto questo: stai leggendo la descrizione di un work item, magari controllando i criteri di accettazione, e fai accidentalmente doppio clic. Boom — sei in modalità modifica. Non volevi modificare niente. Stavi solo leggendo.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;ha annunciato la correzione&lt;/a&gt;, ed è uno di quei cambiamenti che sembrano piccoli ma rimuovono vera frizione dal tuo flusso di lavoro quotidiano.&lt;/p&gt;
&lt;h2 id="cosa-è-cambiato"&gt;Cosa è cambiato&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;editor Markdown per i campi testo dei work item ora si apre in &lt;strong&gt;modalità anteprima di default&lt;/strong&gt;. Puoi leggere e interagire con il contenuto — seguire link, verificare la formattazione — senza preoccuparti di entrare accidentalmente in modalità modifica.&lt;/p&gt;
&lt;p&gt;Quando vuoi davvero modificare, clicchi sull&amp;rsquo;icona di modifica in cima al campo. Quando hai finito, esci esplicitamente alla modalità anteprima. Semplice, intenzionale, prevedibile.&lt;/p&gt;
&lt;h2 id="perché-conta-più-di-quanto-sembra"&gt;Perché conta più di quanto sembra&lt;/h2&gt;
&lt;p&gt;Il &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;thread di feedback della community&lt;/a&gt; era lungo. Il comportamento del doppio clic per modificare è stato introdotto con l&amp;rsquo;editor Markdown a luglio 2025, e le lamentele sono iniziate quasi subito.&lt;/p&gt;
&lt;p&gt;Per i team che fanno sprint planning, backlog refinement o code review con Azure Boards, questo tipo di micro-frizione si accumula.&lt;/p&gt;
&lt;h2 id="stato-del-rollout"&gt;Stato del rollout&lt;/h2&gt;
&lt;p&gt;È già in fase di distribuzione per un sottoinsieme di clienti e si espanderà a tutti nelle prossime due-tre settimane.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Non ogni miglioramento deve essere una funzionalità da prima pagina. A volte il miglior aggiornamento è semplicemente rimuovere qualcosa di fastidioso. Questo è esattamente così — un piccolo fix UX che rende Azure Boards meno ostile per chi vuole solo leggere i propri work item in pace.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio porta navigazione a slot e condivisione ai segnalibri di Visual Studio</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>La nuova estensione Bookmark Studio di Mads Kristensen aggiunge navigazione a slot da tastiera, un gestore di segnalibri, colori, etichette e funzionalità di esportazione ai segnalibri di Visual Studio.</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/bookmark-studio-visual-studio-extension/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I segnalibri in Visual Studio sono sempre stati&amp;hellip; discreti. Ne metti uno, navighi al successivo, dimentichi qual è quale. Funzionano, ma non sono mai stati qualcosa che chiameresti potente.&lt;/p&gt;
&lt;p&gt;Mads Kristensen ha appena &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;rilasciato Bookmark Studio&lt;/a&gt;, un&amp;rsquo;estensione sperimentale che colma esattamente le lacune che probabilmente hai incontrato.&lt;/p&gt;
&lt;h2 id="navigazione-a-slot"&gt;Navigazione a slot&lt;/h2&gt;
&lt;p&gt;I segnalibri possono essere assegnati a slot da 1 a 9 e raggiunti direttamente con &lt;code&gt;Alt+Shift+1&lt;/code&gt; fino a &lt;code&gt;Alt+Shift+9&lt;/code&gt;. I nuovi segnalibri ottengono automaticamente il primo slot disponibile.&lt;/p&gt;
&lt;h2 id="il-gestore-di-segnalibri"&gt;Il Gestore di Segnalibri&lt;/h2&gt;
&lt;p&gt;Una nuova finestra strumenti mostra tutti i segnalibri con filtri per nome, file, posizione, colore o slot.&lt;/p&gt;
&lt;h2 id="organizzazione-con-etichette-colori-e-cartelle"&gt;Organizzazione con etichette, colori e cartelle&lt;/h2&gt;
&lt;p&gt;I segnalibri possono avere etichette, colori ed essere raggruppati in cartelle. I metadati sono salvati per soluzione.&lt;/p&gt;
&lt;h2 id="esporta-e-condividi"&gt;Esporta e condividi&lt;/h2&gt;
&lt;p&gt;Bookmark Studio permette di esportare segnalibri come testo, Markdown o CSV.&lt;/p&gt;
&lt;h2 id="segnalibri-che-seguono-il-codice"&gt;Segnalibri che seguono il codice&lt;/h2&gt;
&lt;p&gt;Bookmark Studio traccia i segnalibri relativamente al testo ancorato, quindi non si spostano sulle righe sbagliate.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Bookmark Studio non reinventa nulla. Prende una funzionalità che era &amp;ldquo;sufficiente&amp;rdquo; da anni e la rende davvero utile. Scaricalo dal &lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>L'aggiornamento di marzo di Visual Studio permette di creare agenti Copilot personalizzati — e find_symbol è rivoluzionario</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>L'aggiornamento di marzo 2026 di Visual Studio porta agenti Copilot personalizzati, skill riutilizzabili, lo strumento find_symbol con riconoscimento del linguaggio, e profiling con Copilot dal Test Explorer.</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/visual-studio-march-2026-custom-copilot-agents/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studio ha appena ricevuto il suo aggiornamento Copilot più significativo. Mark Downie &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;ha annunciato il rilascio di marzo&lt;/a&gt;, e il titolo sono gli agenti personalizzati — ma onestamente, lo strumento &lt;code&gt;find_symbol&lt;/code&gt; potrebbe essere la funzionalità che cambia di più il tuo workflow.&lt;/p&gt;
&lt;h2 id="agenti-copilot-personalizzati-nel-tuo-repo"&gt;Agenti Copilot personalizzati nel tuo repo&lt;/h2&gt;
&lt;p&gt;Vuoi che Copilot segua gli standard del tuo team? Gli agenti personalizzati sono definiti come file &lt;code&gt;.agent.md&lt;/code&gt; in &lt;code&gt;.github/agents/&lt;/code&gt;. Ogni agente ha accesso completo al workspace, comprensione del codice, strumenti, il tuo modello preferito e connessioni MCP.&lt;/p&gt;
&lt;h2 id="agent-skill-pacchetti-di-istruzioni-riutilizzabili"&gt;Agent skill: pacchetti di istruzioni riutilizzabili&lt;/h2&gt;
&lt;p&gt;Le skill vengono caricate automaticamente da &lt;code&gt;.github/skills/&lt;/code&gt; nel tuo repo o &lt;code&gt;~/.copilot/skills/&lt;/code&gt; nel tuo profilo.&lt;/p&gt;
&lt;h2 id="find_symbol-navigazione-consapevole-del-linguaggio"&gt;find_symbol: navigazione consapevole del linguaggio&lt;/h2&gt;
&lt;p&gt;Il nuovo strumento &lt;code&gt;find_symbol&lt;/code&gt; dà alla modalità agente di Copilot una navigazione dei simboli basata sui servizi di linguaggio. Invece di cercare testo, l&amp;rsquo;agente può trovare tutti i riferimenti di un simbolo e accedere a informazioni su tipi e scope.&lt;/p&gt;
&lt;p&gt;Per gli sviluppatori .NET, è un miglioramento enorme — i codebase C# con gerarchie di tipi profonde ne beneficiano enormemente.&lt;/p&gt;
&lt;h2 id="profilare-test-con-copilot"&gt;Profilare test con Copilot&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;è un nuovo &lt;strong&gt;Profile with Copilot&lt;/strong&gt; nel menu contestuale del Test Explorer. Il Profiling Agent esegue il test e analizza le performance automaticamente.&lt;/p&gt;
&lt;h2 id="perf-tip-durante-il-debug-dal-vivo"&gt;Perf tip durante il debug dal vivo&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;ottimizzazione delle performance ora avviene durante il debug. Visual Studio mostra il tempo di esecuzione inline. Linea lenta? Clicca sul Perf Tip e chiedi a Copilot suggerimenti.&lt;/p&gt;
&lt;h2 id="correggere-vulnerabilità-nuget-dal-solution-explorer"&gt;Correggere vulnerabilità NuGet dal Solution Explorer&lt;/h2&gt;
&lt;p&gt;Un link &lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt; appare direttamente nel Solution Explorer quando viene rilevata una vulnerabilità.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Agenti personalizzati e skill fanno il titolo, ma &lt;code&gt;find_symbol&lt;/code&gt; è la gemma nascosta — cambia fondamentalmente la precisione di Copilot nel refactoring di codice .NET. Scarica &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt; per provare tutto.&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>