<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azd | The .NET Blog</title><link>https://thedotnetblog.com/ca/tags/azd/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ca</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ca/tags/azd/index.xml" rel="self" type="application/rss+xml"/><item><title>Hooks d'azd en Python, TypeScript i .NET: adéu als scripts de shell</title><link>https://thedotnetblog.com/ca/posts/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/ca/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>La CLI d'Azure Developer ara permet escriure hooks en Python, JavaScript, TypeScript o .NET. S'ha acabat canviar de context a Bash per executar un script de migració.</description><content:encoded>&lt;p&gt;&lt;em&gt;Aquesta publicació ha estat traduïda automàticament. Per a la versió original, &lt;a href="https://thedotnetblog.com/ca/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;feu clic aquí&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Si alguna vegada has tingut un projecte completament en .NET i tot i així has hagut d&amp;rsquo;escriure scripts Bash per als hooks d&amp;rsquo;azd, coneixes bé aquell dolor. Per què canviar a sintaxi de shell en un pas de pre-provisioning quan tota la resta del projecte és C#?&lt;/p&gt;
&lt;p&gt;Aquesta frustració té ara solució oficial. L&amp;rsquo;Azure Developer CLI &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;acaba de llançar suport multi-llenguatge per a hooks&lt;/a&gt;, i és exactament tan bo com sona.&lt;/p&gt;
&lt;h2 id="hooks-breument"&gt;Hooks, breument&lt;/h2&gt;
&lt;p&gt;Els hooks són scripts que s&amp;rsquo;executen en punts clau del cicle de vida d&amp;rsquo;&lt;code&gt;azd&lt;/code&gt; — abans del provisioning, després del desplegament, i més. Es defineixen a &lt;code&gt;azure.yaml&lt;/code&gt; i permeten injectar lògica personalitzada sense modificar la CLI.&lt;/p&gt;
&lt;p&gt;Abans només s&amp;rsquo;admetien Bash i PowerShell. Ara pots usar &lt;strong&gt;Python, JavaScript, TypeScript o .NET&lt;/strong&gt; — i &lt;code&gt;azd&lt;/code&gt; s&amp;rsquo;encarrega de la resta automàticament.&lt;/p&gt;
&lt;h2 id="com-funciona-la-detecció"&gt;Com funciona la detecció&lt;/h2&gt;
&lt;p&gt;Simplement apuntes el hook a un fitxer i &lt;code&gt;azd&lt;/code&gt; infereix el llenguatge per l&amp;rsquo;extensió:&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;Sense configuració addicional. Si l&amp;rsquo;extensió és ambigua, pots afegir &lt;code&gt;kind: python&lt;/code&gt; (o el que correspongui) per especificar-ho explícitament.&lt;/p&gt;
&lt;h2 id="detalls-importants-per-llenguatge"&gt;Detalls importants per llenguatge&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Col·loca un &lt;code&gt;requirements.txt&lt;/code&gt; o &lt;code&gt;pyproject.toml&lt;/code&gt; al costat del script (o en qualsevol directori pare) i &lt;code&gt;azd&lt;/code&gt; crea un entorn virtual, instal·la dependències i executa l&amp;rsquo;script.&lt;/p&gt;
&lt;h3 id="javascript-i-typescript"&gt;JavaScript i TypeScript&lt;/h3&gt;
&lt;p&gt;El mateix patró — posa un &lt;code&gt;package.json&lt;/code&gt; a prop del script i &lt;code&gt;azd&lt;/code&gt; executarà &lt;code&gt;npm install&lt;/code&gt; primer. Per a TypeScript, usa &lt;code&gt;npx tsx&lt;/code&gt; sense pas de compilació ni &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;Dos modes disponibles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mode projecte&lt;/strong&gt;: Si hi ha un &lt;code&gt;.csproj&lt;/code&gt; al costat del script, &lt;code&gt;azd&lt;/code&gt; executa &lt;code&gt;dotnet restore&lt;/code&gt; i &lt;code&gt;dotnet build&lt;/code&gt; automàticament.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mode single-file&lt;/strong&gt;: En .NET 10+, pots posar un fitxer &lt;code&gt;.cs&lt;/code&gt; independent i s&amp;rsquo;executa directament amb &lt;code&gt;dotnet run script.cs&lt;/code&gt;. Sense fitxer de projecte.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuració-per-executor"&gt;Configuració per executor&lt;/h2&gt;
&lt;p&gt;Cada llenguatge admet un bloc &lt;code&gt;config&lt;/code&gt; opcional:&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="per-què-importa-per-a-desenvolupadors-net"&gt;Per què importa per a desenvolupadors .NET&lt;/h2&gt;
&lt;p&gt;Els hooks eren l&amp;rsquo;últim lloc d&amp;rsquo;un projecte basat en azd que t&amp;rsquo;obligava a usar un altre llenguatge. Ara tot el pipeline de desplegament pot viure en un sol llenguatge. Pots reutilitzar les teves utilitats .NET existents als hooks, referenciar llibreries compartides i evitar el manteniment de scripts de shell.&lt;/p&gt;
&lt;h2 id="conclusió"&gt;Conclusió&lt;/h2&gt;
&lt;p&gt;És un d&amp;rsquo;aquells canvis que semblen petits però que eliminen molta fricció del dia a dia amb azd. El suport multi-llenguatge per a hooks ja està disponible — consulta el &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;post oficial&lt;/a&gt; per a la documentació completa.&lt;/p&gt;</content:encoded></item><item><title>azd + GitHub Copilot: Configuració de projecte amb IA i resolució intel·ligent d'errors</title><link>https://thedotnetblog.com/ca/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ca/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</guid><description>L'Azure Developer CLI ara s'integra amb GitHub Copilot per generar la infraestructura del teu projecte i resoldre errors de desplegament — sense sortir del terminal.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Aquest article ha estat traduït automàticament. Per veure la versió original en anglès, &lt;a href="https://thedotnetblog.com/ca/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/"&gt;fes clic aquí&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Coneixes aquell moment en què vols desplegar una aplicació existent a Azure i et quedes mirant un &lt;code&gt;azure.yaml&lt;/code&gt; en blanc, intentant recordar si la teva API Express hauria d&amp;rsquo;usar Container Apps o App Service? Aquell moment acaba de ser molt més curt.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) ara s&amp;rsquo;integra amb GitHub Copilot de dues maneres concretes: scaffolding assistit per IA durant &lt;code&gt;azd init&lt;/code&gt;, i resolució intel·ligent d&amp;rsquo;errors quan els desplegaments fallen. Les dues funcions es queden completament al terminal — exactament on vull que siguin.&lt;/p&gt;
&lt;h2 id="configuració-amb-copilot-durant-azd-init"&gt;Configuració amb Copilot durant azd init&lt;/h2&gt;
&lt;p&gt;Quan executes &lt;code&gt;azd init&lt;/code&gt;, ara apareix l&amp;rsquo;opció &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Selecciona-la i Copilot analitza el teu codebase per generar l&amp;rsquo;&lt;code&gt;azure.yaml&lt;/code&gt;, les plantilles d&amp;rsquo;infraestructura i els mòduls Bicep — basant-se en el teu codi real.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd init
# Selecciona: &amp;#34;Set up with GitHub Copilot (Preview)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Requisits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;azd 1.23.11 o superior&lt;/strong&gt; — comprova amb &lt;code&gt;azd version&lt;/code&gt; o actualitza amb &lt;code&gt;azd update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Una subscripció activa de GitHub Copilot&lt;/strong&gt; (Individual, Business o Enterprise)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;)&lt;/strong&gt; — &lt;code&gt;azd&lt;/code&gt; demanarà login si cal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El que trobo genuïnament útil és que funciona en els dos sentits. Construint des de zero? Copilot t&amp;rsquo;ajuda a configurar els serveis Azure correctes des del principi. Tens una app existent que vols desplegar? Apunta Copilot cap a ella i genera la configuració sense haver de reestructurar res.&lt;/p&gt;
&lt;h3 id="el-que-fa-realment"&gt;El que fa realment&lt;/h3&gt;
&lt;p&gt;Imagina que tens una API Express en Node.js amb dependència de PostgreSQL. En lloc de decidir manualment entre Container Apps i App Service, i després escriure Bicep des de zero, Copilot detecta el teu stack i genera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;code&gt;azure.yaml&lt;/code&gt; amb els ajustaments correctes de &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt; i &lt;code&gt;build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Un mòdul Bicep per a Azure Container Apps&lt;/li&gt;
&lt;li&gt;Un mòdul Bicep per a Azure Database for PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I fa comprovacions prèvies abans de tocar res — verifica que el teu directori git estigui net, demana consentiment per a les eines del servidor MCP. Res no passa sense que sàpigues exactament què canviarà.&lt;/p&gt;
&lt;h2 id="resolució-derrors-amb-copilot"&gt;Resolució d&amp;rsquo;errors amb Copilot&lt;/h2&gt;
&lt;p&gt;Els errors de desplegament són inevitables. Paràmetres que falten, problemes de permisos, disponibilitat de SKUs — i el missatge d&amp;rsquo;error rarament et diu l&amp;rsquo;única cosa que realment necessites saber: &lt;em&gt;com solucionar-ho&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Sense Copilot, el cicle és: copiar l&amp;rsquo;error → buscar als docs → llegir tres respostes irrellevants de Stack Overflow → executar alguns comandos &lt;code&gt;az&lt;/code&gt; CLI → tornar-ho a intentar i rezar. Amb Copilot integrat a &lt;code&gt;azd&lt;/code&gt;, aquest cicle s&amp;rsquo;esfondra. Quan qualsevol comandament &lt;code&gt;azd&lt;/code&gt; falla, ofereix immediatament quatre opcions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; — descripció en llenguatge natural del que ha anat malament&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt; — instruccions pas a pas per solucionar-ho&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diagnose and Guide&lt;/strong&gt; — anàlisi completa + Copilot aplica la solució (amb la teva aprovació) + reintent opcional&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip&lt;/strong&gt; — gestionar-ho tu mateix&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punt clau: Copilot ja té context sobre el teu projecte, el comandament que ha fallat i la sortida de l&amp;rsquo;error. Les seves suggerències són específiques per a &lt;em&gt;la teva situació&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id="configurar-un-comportament-predeterminat"&gt;Configurar un comportament predeterminat&lt;/h3&gt;
&lt;p&gt;Si sempre tries la mateixa opció, salta el prompt interactiu:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.category troubleshoot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Valors: &lt;code&gt;explain&lt;/code&gt;, &lt;code&gt;guidance&lt;/code&gt;, &lt;code&gt;troubleshoot&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;skip&lt;/code&gt;. També pots habilitar auto-fix i reintent:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.fix allow
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Torna al mode interactiu en qualsevol moment:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config unset copilot.errorHandling.category
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="conclusió"&gt;Conclusió&lt;/h2&gt;
&lt;p&gt;Executa &lt;code&gt;azd update&lt;/code&gt; per obtenir la versió més recent i usa &lt;code&gt;azd init&lt;/code&gt; en el teu proper projecte. És exactament el tipus d&amp;rsquo;integració de Copilot que aporta valor real.&lt;/p&gt;
&lt;p&gt;Llegeix l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/"&gt;anunci original aquí&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd update: una comanda per controlar tots els vostres gestors de paquets</title><link>https://thedotnetblog.com/ca/posts/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/ca/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>L'Azure Developer CLI ara té una ordre d'actualització universal que funciona independentment de com l'hagueu instal·lat: winget, Homebrew, Chocolatey o script d'instal·lació.</description><content:encoded>&lt;p&gt;Sabeu que el missatge &amp;ldquo;Hi ha una versió nova d&amp;rsquo;azd disponible&amp;rdquo; que apareix cada poques setmanes? El que descarteu perquè no recordeu si vau instal·lar &lt;code&gt;azd&lt;/code&gt; mitjançant winget, Homebrew o aquell script curl que vau executar fa sis mesos? Sí, finalment s&amp;rsquo;ha arreglat.&lt;/p&gt;
&lt;p&gt;Microsoft acaba d&amp;rsquo;enviar &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt;: una ordre única que actualitza l&amp;rsquo;Azure Developer CLI a la darrera versió, independentment de com l&amp;rsquo;haveu instal·lat originalment. Windows, macOS, Linux, no importa. Una ordre.&lt;/p&gt;
&lt;h2 id="com-funciona"&gt;Com funciona&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;Això és tot. Si voleu un accés anticipat a noves funcions, podeu canviar a la creació diària d&amp;rsquo;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;L&amp;rsquo;ordre detecta el vostre mètode d&amp;rsquo;instal·lació actual i utilitza el mecanisme d&amp;rsquo;actualització adequat sota el capó. No més &amp;ldquo;espera, he fet servir winget o choco en aquesta màquina?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="la-petita-captura"&gt;La petita captura&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; s&amp;rsquo;envia a partir de la versió 1.23.x. Si teniu una versió anterior, haureu de fer una darrera actualització manual mitjançant el vostre mètode d&amp;rsquo;instal·lació original. Després d&amp;rsquo;això, &lt;code&gt;azd update&lt;/code&gt; s&amp;rsquo;encarrega de tot el futur.&lt;/p&gt;
&lt;p&gt;Comproveu la vostra versió actual amb &lt;code&gt;azd version&lt;/code&gt;. Si necessiteu una instal·lació nova, els &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;documents d&amp;rsquo;instal·lació&lt;/a&gt; us cobreixen.&lt;/p&gt;
&lt;h2 id="per-què-és-important"&gt;Per què és important&lt;/h2&gt;
&lt;p&gt;Aquesta és una petita millora de la qualitat de vida, però per a aquells de nosaltres que utilitzem &lt;code&gt;azd&lt;/code&gt; diàriament per desplegar agents d&amp;rsquo;IA i aplicacions Aspire a Azure, mantenir-se al dia significa menys moments &amp;ldquo;aquest error ja s&amp;rsquo;ha solucionat a la darrera versió&amp;rdquo;. Una cosa menys per pensar.&lt;/p&gt;
&lt;p&gt;Llegiu l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;anunci complet&lt;/a&gt; i la &lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;immersió més profunda&lt;/a&gt; de Jon Gallant per a més context.&lt;/p&gt;</content:encoded></item><item><title>azd ara us permet executar i depurar agents d'IA localment: aquí teniu el que va canviar el març de 2026</title><link>https://thedotnetblog.com/ca/posts/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/ca/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>L'Azure Developer CLI va enviar set versions el març de 2026. Els aspectes més destacats: un bucle local d'execució i depuració per a agents d'IA, integració de GitHub Copilot a la configuració del projecte i suport de Container App Jobs.</description><content:encoded>&lt;p&gt;Set llançaments en un mes. Això és el que va impulsar l&amp;rsquo;equip de l&amp;rsquo;Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) el març de 2026, i la funció de titular és la que estava esperant: &lt;strong&gt;un bucle local d&amp;rsquo;execució i depuració per als agents d&amp;rsquo;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;va publicar el resum complet&lt;/a&gt; i, tot i que hi ha moltes coses, permeteu-me filtrar-ho fins al que realment importa per als desenvolupadors de.NET que creen aplicacions basades en IA.&lt;/p&gt;
&lt;h2 id="executeu-i-depureu-agents-dia-sense-desplegar-los"&gt;Executeu i depureu agents d&amp;rsquo;IA sense desplegar-los&lt;/h2&gt;
&lt;p&gt;Aquest és el gran. La nova extensió &lt;code&gt;azure.ai.agents&lt;/code&gt; afegeix un conjunt d&amp;rsquo;ordres que us ofereixen una experiència de bucle interior adequada per als agents d&amp;rsquo;IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;: inicia el vostre agent localment&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;: li envia missatges (locals o desplegats)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;: mostra l&amp;rsquo;estat i la salut del contenidor&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;: transmet els registres dels contenidors en temps real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Abans d&amp;rsquo;això, provar un agent d&amp;rsquo;IA significava desplegar-lo a Microsoft Foundry cada vegada que feies un canvi. Ara podeu iterar localment, provar el comportament del vostre agent i només implementar-lo quan estigueu preparat. Si heu estat creant agents amb Microsoft Agent Framework o Semantic Kernel, això canvia el vostre flux de treball diari.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;ordre d&amp;rsquo;invocació funciona amb agents locals i desplegats, la qual cosa significa que podeu utilitzar el mateix flux de treball de prova independentment d&amp;rsquo;on s&amp;rsquo;executi l&amp;rsquo;agent. Aquest és el tipus de detall que us estalvia mantenir dos conjunts de scripts de prova.&lt;/p&gt;
&lt;h2 id="github-copilot-arma-el-vostre-projecte-azd"&gt;GitHub Copilot arma el vostre projecte azd&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; ara ofereix una opció &amp;ldquo;Configura amb GitHub Copilot (vista prèvia)&amp;rdquo;. En lloc de respondre manualment les sol·licituds sobre l&amp;rsquo;estructura del vostre projecte, un agent de Copilot us encarrega la configuració. Comprova si hi ha un directori de treball brut abans de modificar res i demana el consentiment de l&amp;rsquo;eina del servidor MCP per endavant.&lt;/p&gt;
&lt;p&gt;Quan una ordre falla, &lt;code&gt;azd&lt;/code&gt; ara ofereix una resolució de problemes assistida per IA: trieu una categoria (explica, orienta, soluciona problemes o salta), deixeu que l&amp;rsquo;agent suggereixi una solució i torneu-ho a provar, tot sense sortir del terminal. Per a configuracions d&amp;rsquo;infraestructures complexes, això suposa un estalvi de temps real.&lt;/p&gt;
&lt;h2 id="feines-de-laplicació-de-contenidors-i-millores-en-el-desplegament"&gt;Feines de l&amp;rsquo;aplicació de contenidors i millores en el desplegament&lt;/h2&gt;
&lt;p&gt;Algunes funcions de desplegament que cal destacar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fines d&amp;rsquo;aplicacions de contenidors&lt;/strong&gt;: &lt;code&gt;azd&lt;/code&gt; ara desplega &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; mitjançant la configuració existent &lt;code&gt;host: containerapp&lt;/code&gt;. La vostra plantilla de bíceps determina si l&amp;rsquo;objectiu és una aplicació de contenidor o una feina, sense cap configuració addicional.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temps d&amp;rsquo;espera de desplegament configurables&lt;/strong&gt;: nova marca &lt;code&gt;--timeout&lt;/code&gt; a &lt;code&gt;azd deploy&lt;/code&gt; i un camp &lt;code&gt;deployTimeout&lt;/code&gt; a &lt;code&gt;azure.yaml&lt;/code&gt;. Ja no cal endevinar el límit predeterminat de 1200 segons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recurs de compilació remota&lt;/strong&gt;: quan la compilació remota d&amp;rsquo;ACR falla, &lt;code&gt;azd&lt;/code&gt; torna automàticament a la compilació local de Docker/Podman.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validació local de preflight&lt;/strong&gt;: els paràmetres de bíceps es validen localment abans de desplegar-se, capturant els paràmetres que falten sense un viatge d&amp;rsquo;anada i tornada a Azure.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="polit-de-lexperiència-del-desenvolupador"&gt;Polit de l&amp;rsquo;experiència del desenvolupador&lt;/h2&gt;
&lt;p&gt;Algunes millores més petites que sumen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Detecció automàtica de pnpm/fils&lt;/strong&gt; per a projectes JS/TS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compatibilitat amb pyproject.toml&lt;/strong&gt; per a l&amp;rsquo;embalatge de Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directoris de plantilles locals&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; ara accepta camins del sistema de fitxers per a la iteració fora de línia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Millors missatges d&amp;rsquo;error&lt;/strong&gt; en mode &lt;code&gt;--no-prompt&lt;/code&gt;: tots els valors que falten es reporten alhora amb ordres de resolució&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variables d&amp;rsquo;entorn de compilació&lt;/strong&gt; injectades a tots els subprocessos de creació de marcs (.NET, Node.js, Java, Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquesta última és subtil però important: la vostra compilació.NET ara té accés a les variables d&amp;rsquo;entorn &lt;code&gt;azd&lt;/code&gt;, la qual cosa significa que podeu fer una injecció de configuració en temps de compilació sense scripts addicionals.&lt;/p&gt;
&lt;h2 id="tancant"&gt;Tancant&lt;/h2&gt;
&lt;p&gt;El bucle de depuració de l&amp;rsquo;agent d&amp;rsquo;IA local és l&amp;rsquo;estrella d&amp;rsquo;aquesta versió, però l&amp;rsquo;acumulació de millores en el desplegament i la poliment DX fa que &lt;code&gt;azd&lt;/code&gt; se senti més madur que mai. Si esteu desplegant aplicacions.NET a Azure, especialment agents d&amp;rsquo;IA, aquesta actualització val la pena instal·lar-la.&lt;/p&gt;
&lt;p&gt;Comproveu les &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;notes completes de la versió&lt;/a&gt; per a cada detall o comenceu amb &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;instal·lació d&amp;rsquo;azd&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>De l'ordinador portàtil a la producció: desplegament d'agents d'IA a Microsoft Foundry amb dues ordres</title><link>https://thedotnetblog.com/ca/posts/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/ca/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>L'Azure Developer CLI ara té ordres "azd ai agent" que porten el vostre agent d'IA des del desenvolupador local a un punt final de Foundry en directe en qüestió de minuts. Aquí teniu el flux de treball complet.</description><content:encoded>&lt;p&gt;Coneixeu aquesta bretxa entre &amp;ldquo;funciona a la meva màquina&amp;rdquo; i &amp;ldquo;està desplegat i atén el trànsit&amp;rdquo;? Per als agents d&amp;rsquo;IA, aquesta bretxa ha estat dolorosament àmplia. Heu de subministrar recursos, desplegar models, connectar la identitat, configurar la supervisió, i això és abans que ningú pugui trucar al vostre agent.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI acaba de convertir-ho en un &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;assumpte de dos comandaments&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="el-nou-flux-de-treball-azd-ai-agent"&gt;El nou flux de treball &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Permeteu-me explicar com és realment això. Teniu un projecte d&amp;rsquo;agent d&amp;rsquo;IA, diguem-ne un agent de consergeria d&amp;rsquo;hotel. Funciona localment. Voleu que funcioni a 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;Això és tot. Dues ordres. &lt;code&gt;azd ai agent init&lt;/code&gt; arma la infraestructura com a codi al vostre dipòsit i &lt;code&gt;azd up&lt;/code&gt; proveeix tot a Azure i publica el vostre agent. Obteniu un enllaç directe al vostre agent al portal de Foundry.&lt;/p&gt;
&lt;h2 id="què-passa-sota-el-capó"&gt;Què passa sota el capó&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;ordre &lt;code&gt;init&lt;/code&gt; genera plantilles de bíceps reals i inspeccionables al vostre repositori:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;strong&gt;Recurs de Foundry&lt;/strong&gt; (contenidor de primer nivell)&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;Projecte de Foundry&lt;/strong&gt; (on viu el vostre agent)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuració del model de desplegament&lt;/strong&gt; (GPT-4o, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identitat gestionada&lt;/strong&gt; amb assignacions de rol RBAC adequades&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; per al mapa de serveis&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; amb metadades de l&amp;rsquo;agent i variables d&amp;rsquo;entorn&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aquí teniu la part clau: sou el propietari de tot això. Està versionat Bicep al teu repositori. Podeu inspeccionar-lo, personalitzar-lo i confirmar-lo juntament amb el vostre codi d&amp;rsquo;agent. Sense capses negres màgiques.&lt;/p&gt;
&lt;h2 id="el-bucle-intern-del-desenvolupament"&gt;El bucle intern del desenvolupament&lt;/h2&gt;
&lt;p&gt;El que m&amp;rsquo;agrada molt és la història del desenvolupament local. Quan esteu iterant la lògica de l&amp;rsquo;agent, no voleu tornar a desplegar cada vegada que canvieu una sol·licitud:&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;Això inicia el vostre agent localment. Vinculeu-lo amb &lt;code&gt;azd ai agent invoke&lt;/code&gt; per enviar sol·licituds de prova i teniu un bucle de comentaris ajustat. Edita el codi, reinicia, invoca, repeteix.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;ordre &lt;code&gt;invoke&lt;/code&gt; també és intel·ligent pel que fa a l&amp;rsquo;encaminament: quan s&amp;rsquo;executa un agent local, l&amp;rsquo;orienta automàticament. Quan no ho és, arriba al punt final remot.&lt;/p&gt;
&lt;h2 id="monitorització-en-temps-real"&gt;Monitorització en temps real&lt;/h2&gt;
&lt;p&gt;Aquesta és la característica que em va vendre. Un cop desplegat el vostre agent:&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;Cada sol·licitud i resposta que flueix pel vostre agent es transmet al vostre terminal en temps real. Per depurar problemes de producció, això és inestimable. Sense investigar l&amp;rsquo;analítica de registres, sense esperar que les mètriques s&amp;rsquo;agreguin; veuràs què està passant ara mateix.&lt;/p&gt;
&lt;h2 id="el-conjunt-dordres-complet"&gt;El conjunt d&amp;rsquo;ordres complet&lt;/h2&gt;
&lt;p&gt;Aquí teniu la referència ràpida:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comandament&lt;/th&gt;
&lt;th&gt;Què 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;Armar un projecte d&amp;rsquo;agent de Foundry amb 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;Proveïu els recursos d&amp;rsquo;Azure i implementeu l&amp;rsquo;agent&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;Envieu sol·licituds a l&amp;rsquo;agent local o remot&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;Executeu l&amp;rsquo;agent localment per al desenvolupament&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;Transmet els registres en temps real de l&amp;rsquo;agent publicat&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;Comproveu l&amp;rsquo;estat i l&amp;rsquo;estat de l&amp;rsquo;agent&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;Netegeu tots els recursos d&amp;rsquo;Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="per-què-això-és-important-per-als-desenvolupadors-denet"&gt;Per què això és important per als desenvolupadors de.NET&lt;/h2&gt;
&lt;p&gt;Tot i que la mostra de l&amp;rsquo;anunci està basada en Python, la història de la infraestructura és independent del llenguatge. El vostre agent.NET obté la mateixa bastida Bíceps, la mateixa configuració d&amp;rsquo;identitat gestionada, la mateixa canalització de monitorització. I si ja esteu utilitzant &lt;code&gt;azd&lt;/code&gt; per a les vostres aplicacions.NET Aspire o implementacions d&amp;rsquo;Azure, això s&amp;rsquo;adapta perfectament al vostre flux de treball existent.&lt;/p&gt;
&lt;p&gt;La bretxa de desplegament dels agents d&amp;rsquo;IA ha estat un dels punts de fricció més grans de l&amp;rsquo;ecosistema. Passar d&amp;rsquo;un prototip de treball a un punt final de producció amb una identitat, una xarxa i un seguiment adequats no hauria de requerir una setmana de treball DevOps. Ara requereix dues ordres i uns minuts.&lt;/p&gt;
&lt;h2 id="tancant"&gt;Tancant&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; ja està disponible. Si heu postergat la implementació dels vostres agents d&amp;rsquo;IA perquè la configuració de la infraestructura us semblava massa feina, proveu-ho. Fes una ullada a la &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;tutorial completa&lt;/a&gt; per veure el pas a pas complet, inclosa la integració de l&amp;rsquo;aplicació de xat frontal.&lt;/p&gt;</content:encoded></item></channel></rss>