<?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>Azure | The .NET Blog</title><link>https://thedotnetblog.com/nl/tags/azure/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>nl</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/nl/tags/azure/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server Is Nu een .mcpb — Installeer het Zonder Runtime</title><link>https://thedotnetblog.com/nl/posts/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/nl/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server is nu beschikbaar als MCP Bundle (.mcpb) — download, sleep naar Claude Desktop en klaar. Geen Node.js, Python of .NET vereist.</description><content:encoded>&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Klik &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;hier&lt;/a&gt; voor de originele versie.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Weet je wat vervelend was aan het instellen van MCP-servers? Je had een runtime nodig. Node.js voor de npm-versie, Python voor pip/uvx, .NET SDK voor de dotnet-variant.&lt;/p&gt;
&lt;p&gt;De &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server heeft dat net veranderd&lt;/a&gt;. Het is nu beschikbaar als &lt;code&gt;.mcpb&lt;/code&gt; — een MCP Bundle — en de installatie is slepen en neerzetten.&lt;/p&gt;
&lt;h2 id="wat-is-een-mcp-bundle"&gt;Wat is een MCP Bundle?&lt;/h2&gt;
&lt;p&gt;Denk eraan als een VS Code-extensie (&lt;code&gt;.vsix&lt;/code&gt;) of een browserextensie (&lt;code&gt;.crx&lt;/code&gt;), maar voor MCP-servers. Een &lt;code&gt;.mcpb&lt;/code&gt;-bestand is een zelfstandig ZIP-archief met de serverbinary en alle afhankelijkheden.&lt;/p&gt;
&lt;h2 id="hoe-te-installeren"&gt;Hoe te installeren&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Download de bundle voor uw platform&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ga naar de &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;GitHub Releases-pagina&lt;/a&gt; en download het &lt;code&gt;.mcpb&lt;/code&gt;-bestand voor uw OS en architectuur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Installeer in Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Het gemakkelijkst: sleep het &lt;code&gt;.mcpb&lt;/code&gt;-bestand naar het Claude Desktop-venster terwijl u op de pagina Extensie-instellingen bent (&lt;code&gt;☰ → Bestand → Instellingen → Extensies&lt;/code&gt;). Bekijk de serverdetails, klik op Installeren, bevestig.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Verifieer bij 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;h2 id="aan-de-slag"&gt;Aan de slag&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;Bekijk het &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;volledige bericht&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>GPT-5.5 Is Er en Komt naar Azure Foundry — Wat .NET-Ontwikkelaars Moeten Weten</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</guid><description>GPT-5.5 is algemeen beschikbaar in Microsoft Foundry. De progressie van GPT-5 naar 5.5, wat er echt verbeterd is en hoe u vandaag aan de slag gaat in uw agents.</description><content:encoded>&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Klik &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/"&gt;hier&lt;/a&gt; voor de originele versie.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Microsoft heeft zojuist aangekondigd dat &lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;GPT-5.5 algemeen beschikbaar is in Microsoft Foundry&lt;/a&gt;. Als u agents op Azure bouwt, is dit de update waarop u wachtte.&lt;/p&gt;
&lt;h2 id="de-gpt-5-progressie"&gt;De GPT-5 progressie&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-5&lt;/strong&gt;: combineerde redenering en snelheid in één systeem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.4&lt;/strong&gt;: sterkere meerstaps-redenering, vroege agentische mogelijkheden voor enterprise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt;: diepere langecontextredenering, betrouwbaardere agentische uitvoering, betere tokenefficiëntie&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wat-er-echt-veranderd-is"&gt;Wat er echt veranderd is&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Verbeterde agentische codering&lt;/strong&gt;: GPT-5.5 behoudt context over grote codebases, diagnosticeert architectuurfouten en anticipeert op testvereisten. Het model redeneert over &lt;em&gt;wat anders&lt;/em&gt; een oplossing beïnvloedt voordat het actie onderneemt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tokenefficiëntie&lt;/strong&gt;: Hogere kwaliteitsoutputs met minder tokens en minder pogingen. Direkt lagere kosten en latency voor productie-deployments.&lt;/p&gt;
&lt;h2 id="prijzen"&gt;Prijzen&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Invoer ($/M tokens)&lt;/th&gt;
&lt;th&gt;Gecachte invoer&lt;/th&gt;
&lt;th&gt;Uitvoer ($/M tokens)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;$5,00&lt;/td&gt;
&lt;td&gt;$0,50&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;td&gt;$3,00&lt;/td&gt;
&lt;td&gt;$180,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="waarom-foundry-belangrijk-is"&gt;Waarom Foundry belangrijk is&lt;/h2&gt;
&lt;p&gt;Foundry Agent Service stelt u in staat agents in YAML te definiëren of ze te verbinden met Microsoft Agent Framework, GitHub Copilot SDK, LangGraph of OpenAI Agents SDK — en ze uit te voeren als geïsoleerde gehoste agents met een persistent bestandssysteem, een eigen Microsoft Entra-identiteit en scale-to-zero prijsstelling.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AIAgent&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="p"&gt;=&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="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsAIAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;gpt-5.5&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;U bent een behulpzame assistent.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;MijnAgent&amp;#34;&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;Bekijk de &lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;volledige aankondiging&lt;/a&gt; voor alle details.&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes: Eén endpoint voor alle tools van je AI-agenten</title><link>https://thedotnetblog.com/nl/posts/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/nl/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry heeft Toolboxes uitgebracht in public preview — een manier om AI-agenttools te beheren en bloot te stellen via één MCP-compatibel endpoint.</description><content:encoded>&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor de originele versie, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Er is een probleem dat triviaal lijkt totdat je het zelf tegenkomt: de organisatie bouwt meerdere AI-agenten, elk heeft tools nodig, en elk team configureert die van de grond af. Dezelfde webzoekintegratie, dezelfde Azure AI Search-configuratie, dezelfde GitHub MCP-serververbinding — maar in een ander repository, door een ander team, met andere credentials en zonder gedeeld beheer.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry heeft zojuist &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; uitgebracht in public preview — een directe oplossing voor dit probleem.&lt;/p&gt;
&lt;h2 id="wat-is-een-toolbox"&gt;Wat is een Toolbox?&lt;/h2&gt;
&lt;p&gt;Een Toolbox is een benoemde, herbruikbare toolbundel die je eenmalig definieert in Foundry en beschikbaar stelt via één MCP-compatibel endpoint. Elke agent-runtime die MCP spreekt, kan het consumeren — geen lock-in bij Foundry Agents.&lt;/p&gt;
&lt;p&gt;De belofte is eenvoudig: &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;. Definieer de tools, configureer authenticatie centraal (OAuth passthrough, Entra beheerde identiteit), publiceer het endpoint. Elke agent die die tools nodig heeft, verbindt zich eenmalig en krijgt ze allemaal.&lt;/p&gt;
&lt;h2 id="de-vier-pijlers-twee-vandaag-beschikbaar"&gt;De vier pijlers (twee vandaag beschikbaar)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pijler&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Wat het doet&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;Binnenkort&lt;/td&gt;
&lt;td&gt;Goedgekeurde tools vinden zonder handmatig zoeken&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;Beschikbaar&lt;/td&gt;
&lt;td&gt;Tools samenvoegen in een herbruikbare bundel&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;Beschikbaar&lt;/td&gt;
&lt;td&gt;Één MCP-endpoint stelt alle tools beschikbaar&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;Binnenkort&lt;/td&gt;
&lt;td&gt;Centrale authenticatie + observability voor alle tool-calls&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="praktisch-voorbeeld"&gt;Praktisch voorbeeld&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;Zoek in documentatie en reageer op GitHub-issues.&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;Zoek openbare documentatie&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;Na publicatie geeft Foundry een uniform endpoint. Één verbinding, alle tools.&lt;/p&gt;
&lt;h2 id="geen-lock-in-bij-foundry-agents"&gt;Geen lock-in bij Foundry Agents&lt;/h2&gt;
&lt;p&gt;Toolboxes worden &lt;strong&gt;aangemaakt en beheerd&lt;/strong&gt; in Foundry, maar het consumptieoppervlak is het open MCP-protocol. Ze zijn bruikbaar vanuit eigen agents (Microsoft Agent Framework, LangGraph), GitHub Copilot en andere MCP-compatibele IDEs.&lt;/p&gt;
&lt;h2 id="waarom-dit-nu-belangrijk-is"&gt;Waarom dit nu belangrijk is&lt;/h2&gt;
&lt;p&gt;De multi-agent golf bereikt productie. Elke nieuwe agent is een nieuw oppervlak voor gedupliceerde configuratie, verlopen credentials en inconsistent gedrag. De Build + Consume-basis is voldoende om met centraliseren te beginnen. Wanneer de Govern-pijler komt, beschikt men over een volledig observeerbare, centraal gestuurde tool-laag voor de gehele agentenvloot.&lt;/p&gt;
&lt;h2 id="conclusie"&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Dit is nog vroeg — public preview, Python SDK eerst, met Discover en Govern nog in aantocht. Maar het model is degelijk en het MCP-native design zorgt dat het werkt met de tools die al worden gebouwd. Alle details in de &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;officiële aankondiging&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd + GitHub Copilot: AI-gedreven projectopzet en slimme foutoplossing</title><link>https://thedotnetblog.com/nl/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/nl/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</guid><description>De Azure Developer CLI integreert nu met GitHub Copilot om projectinfrastructuur te genereren en deployment-fouten op te lossen — zonder de terminal te verlaten.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit artikel is automatisch vertaald. Voor de originele Engelse versie, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ken je dat moment waarop je een bestaande app naar Azure wilt deployen en je naar een lege &lt;code&gt;azure.yaml&lt;/code&gt; staart, terwijl je probeert te herinneren of je Express API Container Apps of App Service moet gebruiken? Dat moment is zojuist een stuk korter geworden.&lt;/p&gt;
&lt;p&gt;De Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) integreert nu met GitHub Copilot op twee concrete manieren: AI-ondersteunde projectscaffolding tijdens &lt;code&gt;azd init&lt;/code&gt;, en intelligente foutoplossing wanneer deployments mislukken. Beide functies blijven volledig in de terminal.&lt;/p&gt;
&lt;h2 id="setup-met-copilot-tijdens-azd-init"&gt;Setup met Copilot tijdens azd init&lt;/h2&gt;
&lt;p&gt;Wanneer je &lt;code&gt;azd init&lt;/code&gt; uitvoert, is er nu een optie &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Selecteer die en Copilot analyseert je codebase om de &lt;code&gt;azure.yaml&lt;/code&gt;, infrastructuursjablonen en Bicep-modules te genereren — gebaseerd op je echte code.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd init
# Selecteer: &amp;#34;Set up with GitHub Copilot (Preview)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vereisten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;azd 1.23.11 of nieuwer&lt;/strong&gt; — controleer met &lt;code&gt;azd version&lt;/code&gt; of update met &lt;code&gt;azd update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actief GitHub Copilot-abonnement&lt;/strong&gt; (Individual, Business of 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; vraagt om login als dat nodig is&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wat ik echt nuttig vind: het werkt in beide richtingen. Bouw je van de grond af? Copilot helpt je de juiste Azure-services vanaf het begin te configureren. Heb je een bestaande app die je wilt deployen? Wijs Copilot daarop en het genereert de configuratie zonder dat je iets hoeft te herstructureren.&lt;/p&gt;
&lt;h3 id="wat-het-eigenlijk-doet"&gt;Wat het eigenlijk doet&lt;/h3&gt;
&lt;p&gt;Stel je hebt een Node.js Express API met een PostgreSQL-afhankelijkheid. In plaats van handmatig te kiezen tussen Container Apps en App Service en dan Bicep van de grond af te schrijven, detecteert Copilot je stack en genereert:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Een &lt;code&gt;azure.yaml&lt;/code&gt; met de juiste &lt;code&gt;language&lt;/code&gt;-, &lt;code&gt;host&lt;/code&gt;- en &lt;code&gt;build&lt;/code&gt;-instellingen&lt;/li&gt;
&lt;li&gt;Een Bicep-module voor Azure Container Apps&lt;/li&gt;
&lt;li&gt;Een Bicep-module voor Azure Database for PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En het voert voorafgaande controles uit voor wijzigingen — verifieert dat je git-werkdirectory schoon is, vraagt van tevoren toestemming voor MCP-servertools. Niets gebeurt zonder dat je precies weet wat er gaat veranderen.&lt;/p&gt;
&lt;h2 id="foutoplossing-met-copilot"&gt;Foutoplossing met Copilot&lt;/h2&gt;
&lt;p&gt;Deployment-fouten zijn onvermijdelijk. Ontbrekende parameters, toestemmingsproblemen, SKU-beschikbaarheid — en het foutbericht vertelt je zelden het enige dat je echt moet weten: &lt;em&gt;hoe je het oplost&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Zonder Copilot ziet de lus er zo uit: kopieer de fout → zoek in docs → lees drie irrelevante Stack Overflow-antwoorden → voer wat &lt;code&gt;az&lt;/code&gt; CLI-opdrachten uit → probeer opnieuw en hoop. Met Copilot geïntegreerd in &lt;code&gt;azd&lt;/code&gt; stort deze lus in. Wanneer een &lt;code&gt;azd&lt;/code&gt;-opdracht mislukt, biedt het onmiddellijk vier opties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; — uitleg in begrijpelijke taal van wat er mis ging&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt; — stapsgewijze instructies om het probleem op te lossen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diagnose and Guide&lt;/strong&gt; — volledige analyse + Copilot past de oplossing toe (met jouw goedkeuring) + optioneel opnieuw proberen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip&lt;/strong&gt; — zelf afhandelen&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Het cruciale punt: Copilot heeft al context over je project, de mislukte opdracht en de foutdetails. Zijn suggesties zijn specifiek voor &lt;em&gt;jouw situatie&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id="een-standaardgedrag-instellen"&gt;Een standaardgedrag instellen&lt;/h3&gt;
&lt;p&gt;Als je altijd dezelfde optie kiest, sla de interactieve prompt over:&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;Waarden: &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;. Je kunt ook automatisch herstellen en opnieuw proberen inschakelen:&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;Op elk moment terug naar de interactieve modus:&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="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Voer &lt;code&gt;azd update&lt;/code&gt; uit voor de nieuwste versie en probeer &lt;code&gt;azd init&lt;/code&gt; op je volgende project.&lt;/p&gt;
&lt;p&gt;Lees de &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/"&gt;originele aankondiging hier&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Foundry RFT Is Goedkoper en Slimmer Geworden — Dit Is Wat Er Veranderd Is</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</guid><description>Microsoft Foundry stuurde deze maand drie RFT-updates: globale training voor o4-mini, nieuwe GPT-4.1-modelbeoordelaars en een best practices-gids.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je .NET-apps bouwt die op fijnafgestelde modellen vertrouwen, zijn de Foundry-updates van deze maand de moeite waard.&lt;/p&gt;
&lt;p&gt;De volledige details staan in de &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-foundry-finetune-april-2026/"&gt;officiële aankondiging&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="globale-training-voor-o4-mini"&gt;Globale training voor o4-mini&lt;/h2&gt;
&lt;p&gt;o4-mini is het go-to-model voor redeneerwerk en agentische workloads. Je kunt nu fine-tuning-taken starten vanuit 13+ Azure-regio&amp;rsquo;s met lagere per-token-trainingstarieven.&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="s2"&gt;&amp;#34;trainingType&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;globalstandard&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="nieuwe-modelbeoordelaars-gpt-41-familie"&gt;Nieuwe modelbeoordelaars: GPT-4.1-familie&lt;/h2&gt;
&lt;p&gt;Drie nieuwe opties: GPT-4.1, GPT-4.1-mini en GPT-4.1-nano.&lt;/p&gt;
&lt;p&gt;Indelingsstrategie:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-nano&lt;/strong&gt; voor eerste iteraties. Lage kosten, snelle feedbacklussen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-mini&lt;/strong&gt; zodra de beoordelingsrubric stabiel is.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1&lt;/strong&gt; voor productiebeoordeling.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="de-rft-gegevensformaatval"&gt;De RFT-gegevensformaatval&lt;/h2&gt;
&lt;p&gt;RFT-gegevensformaat verschilt van SFT. Het laatste bericht in elke rij moet de rol User of Developer hebben — niet Assistant.&lt;/p&gt;
&lt;h2 id="waarom-dit-belangrijk-is-voor-net-ontwikkelaars"&gt;Waarom dit belangrijk is voor .NET-ontwikkelaars&lt;/h2&gt;
&lt;p&gt;Goedkopere training betekent agressiever kunnen itereren. De &lt;a href="https://github.com/microsoft-foundry/fine-tuning/blob/main/Demos/Agentic_RFT_PrivatePreview/RFT_Best_Practice.md"&gt;best practices-gids op GitHub&lt;/a&gt; bespaart echte debugging-tijd.&lt;/p&gt;</content:encoded></item><item><title>Je AI-experimenten op Azure Verbranden Geld — Hier is Hoe je Dat Oplost</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</guid><description>AI-workloads op Azure kunnen snel duur worden. Laten we het hebben over wat echt werkt om kosten onder controle te houden zonder je ontwikkeling te vertragen.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je momenteel AI-aangedreven apps bouwt op Azure, heb je waarschijnlijk iets opgemerkt: je cloudfactuur ziet er anders uit. Niet alleen hoger — vreemder. Grillig. Moeilijk te voorspellen.&lt;/p&gt;
&lt;p&gt;Microsoft heeft zojuist een geweldig stuk gepubliceerd over &lt;a href="https://azure.microsoft.com/en-us/blog/cloud-cost-optimization-principles-that-still-matter/"&gt;cloud cost optimization-principes die nog steeds relevant zijn&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="waarom-ai-workloads-anders-zijn"&gt;Waarom AI-workloads anders zijn&lt;/h2&gt;
&lt;p&gt;Traditionele .NET-workloads zijn relatief voorspelbaar. AI-workloads? Niet echt. Je test meerdere modellen, draait GPU-infrastructuur op, en maakt API-aanroepen naar Azure OpenAI waarbij tokenverbruik enorm varieert.&lt;/p&gt;
&lt;h2 id="beheer-vs-optimalisatie--ken-het-verschil"&gt;Beheer vs. optimalisatie — ken het verschil&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Beheer&lt;/strong&gt;: bijhouden en rapporteren.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimalisatie&lt;/strong&gt;: daadwerkelijk beslissingen nemen. Heb je echt die S3-laag nodig? Zit die altijd-aan instantie in het weekend te niets doen?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wat-echt-werkt"&gt;Wat echt werkt&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tag je resources&lt;/strong&gt; — als je niet kunt zien welk project je budget opeet, kun je niets optimaliseren&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stel vangrails in vóór experimenten&lt;/strong&gt; — gebruik Azure Policy om dure SKU&amp;rsquo;s te beperken&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pas de grootte voortdurend aan&lt;/strong&gt; — bekijk aanbevelingen van Azure Advisor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Denk aan de levenscyclus&lt;/strong&gt; — dev-resources moeten worden afgesloten&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Meet waarde, niet alleen kosten&lt;/strong&gt; — een duurder model dat significant betere resultaten levert, kan de juiste keuze zijn&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Azure MCP-tools zijn nu Ingebouwd in Visual Studio 2022 — Geen Extensie Nodig</title><link>https://thedotnetblog.com/nl/posts/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/nl/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Azure MCP-tools worden meegeleverd als onderdeel van de Azure-ontwikkelworkload in Visual Studio 2022. Meer dan 230 tools, 45 Azure-services, nul te installeren extensies.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je de Azure MCP-tools in Visual Studio hebt gebruikt via de afzonderlijke extensie, ken je de procedure — VSIX installeren, herstarten, hopen dat het niet stukgaat, versieverschillen beheren. Die wrijving is weg.&lt;/p&gt;
&lt;p&gt;Yun Jung Choi &lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/"&gt;kondigde aan&lt;/a&gt; dat Azure MCP-tools nu rechtstreeks worden meegeleverd als onderdeel van de Azure-ontwikkelworkload in Visual Studio 2022. Geen extensie. Geen VSIX.&lt;/p&gt;
&lt;h2 id="hoe-in-te-schakelen"&gt;Hoe in te schakelen&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Update naar Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; of hoger&lt;/li&gt;
&lt;li&gt;Zorg ervoor dat de workload &lt;strong&gt;Azure development&lt;/strong&gt; is geïnstalleerd&lt;/li&gt;
&lt;li&gt;Open GitHub Copilot Chat&lt;/li&gt;
&lt;li&gt;Klik op de knop &lt;strong&gt;Tools selecteren&lt;/strong&gt; (het pictogram met twee moersleutels)&lt;/li&gt;
&lt;li&gt;Zet &lt;strong&gt;Azure MCP Server&lt;/strong&gt; aan&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Blijft ingeschakeld tussen sessies.&lt;/p&gt;
&lt;h2 id="kanttekening"&gt;Kanttekening&lt;/h2&gt;
&lt;p&gt;De tools zijn standaard uitgeschakeld — je moet ze inschakelen. Voor .NET-ontwikkelaars in Visual Studio verwijdert dit nog een reden om context te wisselen naar de Azure-portal.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 Krijgt MongoDB EF Core en Azure Data Lake — Twee Integraties Die het Proberen Waard Zijn</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/</guid><description>Aspire 13.2 voegt MongoDB Entity Framework Core en Azure Data Lake Storage-integraties toe met automatische health checks en service discovery. Zo zien ze eruit in de praktijk.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/aspire-132-mongodb-efcore-data-lake/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aspire 13.2 is geland met twee nieuwe database-integraties die de moeite waard zijn: MongoDB Entity Framework Core en Azure Data Lake Storage.&lt;/p&gt;
&lt;h2 id="mongodb-ontmoet-ef-core-in-aspire"&gt;MongoDB ontmoet EF Core in Aspire&lt;/h2&gt;
&lt;p&gt;Aspire ondersteunde MongoDB al een tijdje, maar het was altijd de ruwe driver — geen EF Core, geen DbContext, geen LINQ-query&amp;rsquo;s. Nu krijg je de volledige EF Core-ervaring met MongoDB, samen met Aspire&amp;rsquo;s automatische health checks en service discovery.&lt;/p&gt;
&lt;p&gt;Instellingen in AppHost:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;mongodb&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddMongoDB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mongodb&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="n"&gt;WithDataVolume&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="n"&gt;WithLifetime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ContainerLifetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Persistent&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;apiService&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddProject&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ApiService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;api&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="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mongodb&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;In het verbruikende project:&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;dotnet add package Aspire.MongoDB.EntityFrameworkCore
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Registreer je DbContext:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddMongoDbContext&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;MyDbContext&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mongodb&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;mydb&amp;#34;&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;De integratie regelt connection pooling, OpenTelemetry-traces en health checks achter de schermen.&lt;/p&gt;
&lt;h2 id="azure-data-lake-storage-doet-mee"&gt;Azure Data Lake Storage doet mee&lt;/h2&gt;
&lt;p&gt;In AppHost:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureStorage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;azure-storage&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;dataLake&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddDataLake&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;fileSystem&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddDataLakeFileSystem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake-file-system&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;analyticsService&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddProject&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Projects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AnalyticsService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;analytics&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="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataLake&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="n"&gt;WithReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileSystem&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;In het verbruikende project:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureDataLakeServiceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake&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;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddAzureDataLakeFileSystemClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;data-lake-file-system&amp;#34;&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;Geen handmatig beheer van verbindingsstrings, geen zoektocht naar inloggegevens.&lt;/p&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 is een incrementele release, maar de MongoDB EF Core en Data Lake-integraties vullen echte gaten. &lt;a href="https://get.aspire.dev"&gt;Upgrade naar 13.2&lt;/a&gt; en probeer ze uit.&lt;/p&gt;</content:encoded></item><item><title>azd update — Één Opdracht voor Al je Package Managers</title><link>https://thedotnetblog.com/nl/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/nl/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>De Azure Developer CLI heeft nu een universele updateopdracht die werkt ongeacht hoe je het hebt geïnstalleerd — winget, Homebrew, Chocolatey of installatiescript.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ken je dat bericht &amp;ldquo;Een nieuwe versie van azd is beschikbaar&amp;rdquo; dat elke paar weken verschijnt? De boodschap die je wegklikt omdat je niet meer weet of je &lt;code&gt;azd&lt;/code&gt; via winget, Homebrew of dat curl-script van zes maanden geleden hebt geïnstalleerd? Dat is eindelijk opgelost.&lt;/p&gt;
&lt;p&gt;Microsoft heeft zojuist &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; uitgebracht — één opdracht die de Azure Developer CLI bijwerkt naar de nieuwste versie, ongeacht hoe je het oorspronkelijk hebt geïnstalleerd.&lt;/p&gt;
&lt;h2 id="hoe-het-werkt"&gt;Hoe het werkt&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;Dat is alles. Voor vroege toegang tot nieuwe functies:&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;De opdracht detecteert je huidige installatiemethode en gebruikt het juiste updatemechanisme.&lt;/p&gt;
&lt;h2 id="de-kleine-vangst"&gt;De kleine vangst&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; wordt geleverd vanaf versie 1.23.x. Als je een oudere versie hebt, moet je één laatste handmatige update uitvoeren. Daarna regelt &lt;code&gt;azd update&lt;/code&gt; alles.&lt;/p&gt;
&lt;h2 id="waarom-het-uitmaakt"&gt;Waarom het uitmaakt&lt;/h2&gt;
&lt;p&gt;Dit is een kleine kwaliteitsverbetering, maar voor degenen onder ons die &lt;code&gt;azd&lt;/code&gt; dagelijks gebruiken voor het implementeren van AI-agents en Aspire-apps naar Azure, is het bijblijven belangrijk.&lt;/p&gt;
&lt;p&gt;Lees de &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;volledige aankondiging&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure Smart Tier is GA — Automatische Blob Storage Kostenoptimalisatie Zonder Levenscyclusregels</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/</guid><description>Azure Blob Storage smart tier is nu algemeen beschikbaar en verplaatst objecten automatisch tussen hot-, cool- en cold-lagen op basis van werkelijke toegangspatronen.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-smart-tier-blob-storage-ga/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je ooit tijd hebt besteed aan het afstemmen van Azure Blob Storage-levenscyclusbeleid en dit zag instorten wanneer toegangspatronen veranderden, is dit voor jou. Microsoft heeft zojuist de &lt;a href="https://azure.microsoft.com/en-us/blog/optimize-object-storage-costs-automatically-with-smart-tier-now-generally-available/"&gt;algemene beschikbaarheid van smart tier&lt;/a&gt; voor Azure Blob en Data Lake Storage aangekondigd.&lt;/p&gt;
&lt;h2 id="wat-smart-tier-eigenlijk-doet"&gt;Wat smart tier eigenlijk doet&lt;/h2&gt;
&lt;p&gt;Smart tier evalueert continu de tijd van laatste toegang van elk object in je opslagaccount. Frequent geraadpleegde gegevens blijven in hot, inactieve gegevens worden na 30 dagen naar cool verplaatst, daarna na nog eens 60 dagen naar cold. Wanneer gegevens opnieuw worden geopend, worden ze direct terug gepromoveerd naar hot.&lt;/p&gt;
&lt;p&gt;Geen levenscyclusregels om te configureren. Geen handmatige afstemming.&lt;/p&gt;
&lt;p&gt;Tijdens de preview meldde Microsoft dat &lt;strong&gt;meer dan 50% van de door smart tier beheerde capaciteit automatisch naar koelere lagen is verschoven&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="waarom-dit-belangrijk-is-voor-net-ontwikkelaars"&gt;Waarom dit belangrijk is voor .NET-ontwikkelaars&lt;/h2&gt;
&lt;p&gt;Praktische scenario&amp;rsquo;s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Applicatietelemetrie en logboeken&lt;/strong&gt; — hot bij foutopsporing, zelden geopend na een paar weken&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Datapijplijnen en ETL-uitvoer&lt;/strong&gt; — intensief benaderd tijdens verwerking, daarna meestal cold&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Door gebruikers gegenereerde content&lt;/strong&gt; — recente uploads zijn hot, oudere content koelt geleidelijk af&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="de-afweging"&gt;De afweging&lt;/h2&gt;
&lt;p&gt;De tieringregels van smart tier zijn statisch (30 dagen → cool, 90 dagen → cold). Als je aangepaste drempels nodig hebt, zijn levenscyclusregels nog steeds de weg te gaan.&lt;/p&gt;</content:encoded></item><item><title>Waar Moet Je je AI-Agents op Azure Hosten? Een Praktische Beslissingswijzer</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</guid><description>Azure biedt zes manieren om AI-agents te hosten — van ruwe containers tot volledig beheerde Foundry Hosted Agents. Zo kies je de juiste voor je .NET-workload.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je momenteel AI-agents bouwt met .NET, heb je waarschijnlijk iets opgemerkt: er zijn &lt;em&gt;veel&lt;/em&gt; manieren om ze te hosten op Azure. Container Apps, AKS, Functions, App Service, Foundry Agents, Foundry Hosted Agents.&lt;/p&gt;
&lt;p&gt;Microsoft heeft zojuist een &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;uitgebreide gids voor Azure AI agent-hosting&lt;/a&gt; gepubliceerd.&lt;/p&gt;
&lt;h2 id="de-zes-opties-in-één-oogopslag"&gt;De zes opties in één oogopslag&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Optie&lt;/th&gt;
&lt;th&gt;Beste voor&lt;/th&gt;
&lt;th&gt;Je beheert&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Container Apps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Volledige containercontrole zonder K8s&lt;/td&gt;
&lt;td&gt;Observabiliteit, staat, levenscyclus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AKS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Enterprise-naleving, multi-cluster&lt;/td&gt;
&lt;td&gt;Alles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Event-gedreven, korte taken&lt;/td&gt;
&lt;td&gt;Bijna niets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;App Service&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Eenvoudige HTTP-agents&lt;/td&gt;
&lt;td&gt;Implementatie, schaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Optionele code-agents&lt;/td&gt;
&lt;td&gt;Bijna niets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Hosted Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Aangepaste framework-agents&lt;/td&gt;
&lt;td&gt;Alleen je agentcode&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="foundry-hosted-agents--het-juiste-midden-voor-net-agentdevelopers"&gt;Foundry Hosted Agents — het juiste midden voor .NET agentdevelopers&lt;/h2&gt;
&lt;p&gt;Implementatie is echt eenvoudig:&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 ext install azure.ai.agents
&lt;/span&gt;&lt;/span&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;Die ene &lt;code&gt;azd up&lt;/code&gt; bouwt je container, stuurt hem naar ACR, richt het Foundry-project in en start je agent.&lt;/p&gt;
&lt;h2 id="mijn-beslissingsraamwerk"&gt;Mijn beslissingsraamwerk&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Nul infrastructuur nodig?&lt;/strong&gt; → Foundry Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eigen agentcode maar beheerde hosting gewenst?&lt;/strong&gt; → Foundry Hosted Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event-gedreven, korte taken?&lt;/strong&gt; → Azure Functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maximale containercontrole?&lt;/strong&gt; → Container Apps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strikte naleving en multi-cluster?&lt;/strong&gt; → AKS&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Voor de meeste .NET-ontwikkelaars die bouwen met Semantic Kernel of Microsoft Agent Framework, is Hosted Agents waarschijnlijk het juiste startpunt. Bekijk de &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;volledige gids van Microsoft&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Agent Skills in .NET Zijn Nu Serieus Flexibel</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agent-skills-dotnet-three-authoring-patterns/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agent-skills-dotnet-three-authoring-patterns/</guid><description>Microsoft Agent Framework ondersteunt nu drie manieren om skills te schrijven — bestanden, klassen en inline code — allemaal samengesteld via één provider. Dit is waarom het belangrijk is en hoe je ze gebruikt.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agent-skills-dotnet-three-authoring-patterns/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je agents bouwt met Microsoft Agent Framework, ken je de werkwijze: je definieert skills, koppelt ze aan een provider en laat de agent bepalen welke hij aanroept. Nieuw is &lt;em&gt;hoe&lt;/em&gt; je die skills schrijft — en de sprong in flexibiliteit is aanzienlijk.&lt;/p&gt;
&lt;p&gt;De nieuwste update introduceert drie verschillende patronen voor het schrijven van agent skills: &lt;strong&gt;bestand-gebaseerd&lt;/strong&gt;, &lt;strong&gt;klasse-gebaseerd&lt;/strong&gt; en &lt;strong&gt;inline code-gedefinieerd&lt;/strong&gt;. Alle drie koppelen aan één &lt;code&gt;AgentSkillsProviderBuilder&lt;/code&gt;, wat betekent dat je ze kunt mixen zonder routeringslogica.&lt;/p&gt;
&lt;h2 id="bestand-gebaseerde-skills-het-startpunt"&gt;Bestand-gebaseerde skills: het startpunt&lt;/h2&gt;
&lt;p&gt;Bestand-gebaseerde skills zijn precies wat ze klinken — een map op schijf met een &lt;code&gt;SKILL.md&lt;/code&gt;-bestand, optionele scripts en referentiedocumenten:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;skills/
└── onboarding-guide/
├── SKILL.md
├── scripts/
│ └── check-provisioning.py
└── references/
└── onboarding-checklist.md
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;De frontmatter van &lt;code&gt;SKILL.md&lt;/code&gt; declareert de skillnaam en beschrijving, en de instructiesectie vertelt de agent hoe scripts en referenties te gebruiken.&lt;/p&gt;
&lt;p&gt;Je koppelt het met &lt;code&gt;SubprocessScriptRunner.RunAsync&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;skillsProvider&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AgentSkillsProvider&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;Path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Combine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AppContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BaseDirectory&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;skills&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;SubprocessScriptRunner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&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;h2 id="klasse-gebaseerde-skills-leveren-via-nuget"&gt;Klasse-gebaseerde skills: leveren via NuGet&lt;/h2&gt;
&lt;p&gt;Hier wordt het interessant voor teams. Klasse-gebaseerde skills leiden af van &lt;code&gt;AgentClassSkill&amp;lt;T&amp;gt;&lt;/code&gt; en gebruiken attributen zoals &lt;code&gt;[AgentSkillResource]&lt;/code&gt; en &lt;code&gt;[AgentSkillScript]&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;sealed&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;BenefitsEnrollmentSkill&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;AgentClassSkill&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;BenefitsEnrollmentSkill&lt;/span&gt;&lt;span class="p"&gt;&amp;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="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;override&lt;/span&gt; &lt;span class="n"&gt;AgentSkillFrontmatter&lt;/span&gt; &lt;span class="n"&gt;Frontmatter&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&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="s"&gt;&amp;#34;benefits-enrollment&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="s"&gt;&amp;#34;Enroll an employee in health, dental, or vision plans.&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="na"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt; [AgentSkillScript(&amp;#34;enroll&amp;#34;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Enroll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;planCode&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="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;success&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HrClient&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;EnrollInPlan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;planCode&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;JsonSerializer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Serialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;success&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;planCode&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;Een team kan dit als NuGet-pakket verpakken. Voeg het toe aan je project, stop het in de builder en het werkt naast je bestand-gebaseerde skills.&lt;/p&gt;
&lt;h2 id="inline-skills-de-snelle-brug"&gt;Inline skills: de snelle brug&lt;/h2&gt;
&lt;p&gt;Dat moment wanneer een ander team precies de skill bouwt die je nodig hebt, maar deze pas over een sprint beschikbaar is? &lt;code&gt;AgentInlineSkill&lt;/code&gt; is je brug:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;timeOffSkill&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AgentInlineSkill&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;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;time-off-balance&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="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Calculate remaining vacation and sick days.&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;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;1. Vraag om medewerker-ID. 2. Gebruik calculate-balance. 3. Presenteer resultaten.&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="n"&gt;AddScript&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;calculate-balance&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;leaveType&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;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="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;remaining&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HrDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetAnnualAllowance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;leaveType&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="n"&gt;HrDatabase&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;GetDaysUsed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;leaveType&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;JsonSerializer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Serialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;employeeId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;leaveType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;remaining&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wanneer het NuGet-pakket verschijnt, vervang je de inline skill door de klasse-gebaseerde. De agent merkt het verschil niet.&lt;/p&gt;
&lt;h2 id="scriptgoedkeuring-human-in-the-loop"&gt;Scriptgoedkeuring: human-in-the-loop&lt;/h2&gt;
&lt;p&gt;Voor .NET-ontwikkelaars die productie-agents bouwen, is dit het deel dat implementatiegesprekken daadwerkelijk deblokkert. Zet &lt;code&gt;UseScriptApproval&lt;/code&gt; aan en de agent pauzeert voor het uitvoeren van elk script:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;skillsProvider&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AgentSkillsProviderBuilder&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="n"&gt;UseFileSkill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Combine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;AppContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BaseDirectory&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;skills&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="n"&gt;UseSkill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;BenefitsEnrollmentSkill&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="n"&gt;UseSkill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;timeOffSkill&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="n"&gt;UseFileScriptRunner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SubprocessScriptRunner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&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="n"&gt;UseScriptApproval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&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="n"&gt;Build&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;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Agent skills in .NET hebben nu een echt flexibel schrijfmodel. Of je nu een prototype bouwt met bestand-gebaseerde skills of verpakte mogelijkheden via NuGet levert — alle patronen stellen samen via &lt;code&gt;AgentSkillsProviderBuilder&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/agent-framework/agent-skills-in-net-three-ways-to-author-one-provider-to-run-them/"&gt;originele aankondiging&lt;/a&gt; en &lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/02-agents/AgentSkills"&gt;GitHub-voorbeelden&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server 2.0 Net Uitgebracht — Self-Hosted Agentic Cloud Automatisering is er</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/</guid><description>Azure MCP Server 2.0 wordt stabiel met self-hosted remote deployments, 276 tools in 57 Azure-services en enterprise-beveiliging.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-mcp-server-2-self-hosted-agentic-cloud/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je recentelijk iets hebt gebouwd met MCP en Azure, weet je waarschijnlijk al dat de lokale ervaring goed werkt. Maar wanneer je die setup met je hele team moet delen? Daar werd het ingewikkeld.&lt;/p&gt;
&lt;p&gt;Niet meer. Azure MCP Server &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;heeft 2.0 stabiel bereikt&lt;/a&gt;, en de headlinefunctie is precies wat enterprise-teams hebben gevraagd: &lt;strong&gt;self-hosted remote MCP-serverondersteuning&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="wat-is-azure-mcp-server"&gt;Wat is Azure MCP Server?&lt;/h2&gt;
&lt;p&gt;Azure MCP Server implementeert de &lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro"&gt;Model Context Protocol&lt;/a&gt;-specificatie en exposeert Azure-mogelijkheden als gestructureerde, vindbare tools. De cijfers spreken voor zich: &lt;strong&gt;276 MCP-tools in 57 Azure-services&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="het-grote-nieuws-self-hosted-remote-deployments"&gt;Het grote nieuws: self-hosted remote deployments&lt;/h2&gt;
&lt;p&gt;In een echt teamscenario heb je nodig:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Gedeelde toegang voor ontwikkelaars en interne agentsystemen&lt;/li&gt;
&lt;li&gt;Gecentraliseerde configuratie&lt;/li&gt;
&lt;li&gt;Enterprise-netwerk- en beleidslimieten&lt;/li&gt;
&lt;li&gt;Integratie in CI/CD-pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure MCP Server 2.0 pakt dit allemaal aan. Voor authenticatie zijn er twee opties:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt; — bij gebruik met &lt;a href="https://aka.ms/azmcp/self-host/foundry"&gt;Microsoft Foundry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-Behalf-Of (OBO)-stroom&lt;/strong&gt; — OpenID Connect-delegatie met de werkelijke rechten van de gebruiker&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="beveiligingsverbetering"&gt;Beveiligingsverbetering&lt;/h2&gt;
&lt;p&gt;Versie 2.0 voegt sterkere endpointvalidatie, bescherming tegen injectiepatronen en strikter isolatiebeheer toe.&lt;/p&gt;
&lt;h2 id="aan-de-slag"&gt;Aan de slag&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp"&gt;GitHub Repo&lt;/a&gt;&lt;/strong&gt; — broncode, documentatie&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/docker"&gt;Docker Image&lt;/a&gt;&lt;/strong&gt; — containerimplementatie&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/download/vscode"&gt;VS Code-extensie&lt;/a&gt;&lt;/strong&gt; — IDE-integratie&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://aka.ms/azmcp/self-host"&gt;Zelfhostinghandleiding&lt;/a&gt;&lt;/strong&gt; — 2.0&amp;rsquo;s vlaggenschipfunctie&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Agentic Platform Engineering Wordt Werkelijkheid — Git-APE Laat Zien Hoe</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-platform-engineering-git-ape/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-platform-engineering-git-ape/</guid><description>Microsofts Git-APE project brengt agentic platform engineering in de praktijk — met GitHub Copilot-agents en Azure MCP om natuurlijke taalverzoeken om te zetten in gevalideerde cloudinfrastructuur.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-platform-engineering-git-ape/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Platform engineering is een van die termen die geweldig klinkt op conferenties maar meestal &amp;ldquo;we hebben een intern portaal en een Terraform-wrapper gebouwd&amp;rdquo; betekent. De echte belofte — self-service infrastructuur die werkelijk veilig, beheerd en snel is — was altijd een paar stappen verwijderd.&lt;/p&gt;
&lt;p&gt;Het Azure-team heeft zojuist &lt;a href="https://devblogs.microsoft.com/all-things-azure/putting-agentic-platform-engineering-to-the-test/"&gt;Deel 2 van hun agentic platform engineering-serie&lt;/a&gt; gepubliceerd. Ze noemen het &lt;strong&gt;Git-APE&lt;/strong&gt; — een open-source project dat GitHub Copilot-agents en Azure MCP-servers gebruikt om natuurlijke taalverzoeken om te zetten in gevalideerde, geïmplementeerde infrastructuur.&lt;/p&gt;
&lt;h2 id="wat-git-ape-eigenlijk-doet"&gt;Wat Git-APE eigenlijk doet&lt;/h2&gt;
&lt;p&gt;Het kernidee: in plaats van Terraform-modules te leren, praten ontwikkelaars met een Copilot-agent. De agent interpreteert de intentie, genereert Infrastructure-as-Code, valideert tegen beleid en implementeert — allemaal in VS Code.&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;git clone https://github.com/Azure/git-ape
&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; git-ape
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Open de werkruimte in VS Code, en de agent-configuratiebestanden worden automatisch gevonden door GitHub Copilot:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;@git-ape deploy a function app with storage in West Europe
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Opruimen is net zo eenvoudig:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;@git-ape destroy my-resource-group
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="waarom-dit-ertoe-doet"&gt;Waarom dit ertoe doet&lt;/h2&gt;
&lt;p&gt;Voor degenen die op Azure bouwen, verschuift dit het platform engineering-gesprek van &amp;ldquo;hoe bouwen we een portaal&amp;rdquo; naar &amp;ldquo;hoe beschrijven we onze guardrails als API&amp;rsquo;s.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Als .NET-ontwikkelaar: Azure MCP Server en GitHub Copilot-agents werken met elke Azure-workload — je ASP.NET Core API, .NET Aspire-stack — alles kan het doel zijn van een agentische deployment flow.&lt;/p&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Git-APE is een vroeg maar concreet beeld van agentic platform engineering in de praktijk. Clone de &lt;a href="https://github.com/Azure/git-ape"&gt;repo&lt;/a&gt; en lees de &lt;a href="https://devblogs.microsoft.com/all-things-azure/putting-agentic-platform-engineering-to-the-test/"&gt;volledige post&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>De Moderniseringsbeoordelingstool van GitHub Copilot Is het Beste Migratiehulpmiddel Dat Je Nog Niet Gebruikt</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</guid><description>De moderniseringsextensie van GitHub Copilot stelt niet alleen codewijzigingen voor — het produceert een volledige migratiebeoordeling met uitvoerbare problemen, Azure-doelvergelijkingen en een collaboratieve workflow.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Het migreren van een legacy .NET Framework-app naar modern .NET is een van die taken die iedereen weet dat ze moeten doen maar niemand wil beginnen.&lt;/p&gt;
&lt;p&gt;Jeffrey Fritz heeft zojuist een &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;diepgaande analyse van de moderniseringsbeoordelingstool van GitHub Copilot&lt;/a&gt; gepubliceerd.&lt;/p&gt;
&lt;h2 id="het-is-niet-alleen-een-code-suggestie-engine"&gt;Het is niet alleen een code-suggestie-engine&lt;/h2&gt;
&lt;p&gt;De VS Code-extensie volgt een &lt;strong&gt;Beoordeel → Plan → Uitvoer&lt;/strong&gt;-model. De beoordelingsfase analyseert je volledige codebase en produceert een gestructureerd document dat alles vastlegt.&lt;/p&gt;
&lt;p&gt;De beoordeling wordt opgeslagen onder &lt;code&gt;.github/modernize/assessment/&lt;/code&gt;. Elke run produceert een onafhankelijk rapport.&lt;/p&gt;
&lt;h2 id="twee-manieren-om-te-starten"&gt;Twee manieren om te starten&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Aanbevolen beoordeling&lt;/strong&gt; — het snelle pad. Kies uit gecureerde domeinen (Java/.NET Upgrade, Cloud Readiness, Security).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aangepaste beoordeling&lt;/strong&gt; — het gerichte pad. Configureer exact wat te analyseren: doelcomputing (App Service, AKS, Container Apps), doelbesturingssysteem, containerisatieanalyse.&lt;/p&gt;
&lt;h2 id="de-probleemindeling-is-uitvoerbaar"&gt;De probleemindeling is uitvoerbaar&lt;/h2&gt;
&lt;p&gt;Elk probleem heeft een kriticiteitsniveau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Verplicht&lt;/strong&gt; — moet worden opgelost of migratie mislukt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Potentieel&lt;/strong&gt; — kan migratie beïnvloeden, vereist menselijk oordeel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optioneel&lt;/strong&gt; — aanbevolen verbeteringen, blokkeert migratie niet&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mijn-mening"&gt;Mijn mening&lt;/h2&gt;
&lt;p&gt;Als je legacy .NET Framework-apps hebt, is dit &lt;em&gt;het&lt;/em&gt; hulpmiddel om mee te beginnen.&lt;/p&gt;
&lt;p&gt;Lees de &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;volledige walkthrough&lt;/a&gt; en download de &lt;a href="https://aka.ms/ghcp-appmod/vscode-ext"&gt;VS Code-extensie&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Microsoft Foundry Maart 2026 — GPT-5.4, Agent Service GA en de SDK-vernieuwing die Alles Verandert</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</guid><description>De Foundry-update van maart 2026 is enorm: Agent Service bereikt GA, GPT-5.4 brengt betrouwbaar redeneren, azure-ai-projects SDK gaat stabiel in alle talen.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;De maandelijkse &amp;lsquo;Wat is er nieuw in Microsoft Foundry&amp;rsquo;-berichten zijn meestal een mix van incrementele verbeteringen. De &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;editie van maart 2026&lt;/a&gt;? Vrijwel allemaal headlinefuncties.&lt;/p&gt;
&lt;h2 id="foundry-agent-service-is-productieklaar"&gt;Foundry Agent Service is productieklaar&lt;/h2&gt;
&lt;p&gt;De volgende generatie agent runtime is algemeen beschikbaar — gebouwd op de OpenAI Responses API, wire-compatibel met OpenAI agents.&lt;/p&gt;
&lt;p&gt;Belangrijkste toevoegingen: end-to-end privénetwerken, uitbreiding van MCP-auth, Voice Live-preview en hosted agents in 6 nieuwe regio&amp;rsquo;s.&lt;/p&gt;
&lt;h2 id="gpt-54--betrouwbaarheid-boven-ruwe-intelligentie"&gt;GPT-5.4 — betrouwbaarheid boven ruwe intelligentie&lt;/h2&gt;
&lt;p&gt;GPT-5.4 gaat niet over slimmer zijn. Het gaat over betrouwbaarder zijn.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Prijsstelling (per M tokens)&lt;/th&gt;
&lt;th&gt;Het beste voor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 (≤272K)&lt;/td&gt;
&lt;td&gt;$2.50 / $15 output&lt;/td&gt;
&lt;td&gt;Productieagents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Pro&lt;/td&gt;
&lt;td&gt;$30 / $180 output&lt;/td&gt;
&lt;td&gt;Diepgaande analyse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Mini&lt;/td&gt;
&lt;td&gt;Kosteneffectief&lt;/td&gt;
&lt;td&gt;Classificatie, extractie&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="de-sdk-is-eindelijk-stabiel"&gt;De SDK is eindelijk stabiel&lt;/h2&gt;
&lt;p&gt;De &lt;code&gt;azure-ai-projects&lt;/code&gt; SDK heeft stabiele releases uitgebracht in alle talen — inclusief .NET 2.0.0.&lt;/p&gt;
&lt;h2 id="fireworks-ai-brengt-open-modellen-naar-azure"&gt;Fireworks AI brengt open modellen naar Azure&lt;/h2&gt;
&lt;p&gt;DeepSeek V3.2, gpt-oss-120b, Kimi K2.5 beschikbaar bij lancering.&lt;/p&gt;
&lt;p&gt;Lees de &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;volledige samenvatting&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Real-Time Multi-Agent UI's Bouwen Die Niet Aanvoelen als een Black Box</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/ag-ui-real-time-multi-agent-ui-maf/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/ag-ui-real-time-multi-agent-ui-maf/</guid><description>AG-UI en Microsoft Agent Framework werken samen om multi-agent workflows een proper frontend te geven — met real-time streaming, menselijke goedkeuringen en volledige zichtbaarheid in wat je agents doen.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/ag-ui-real-time-multi-agent-ui-maf/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dit is de werkelijkheid over multi-agent systemen: ze zien er geweldig uit in demo&amp;rsquo;s. Drie agents die werk aan elkaar doorgeven, problemen oplossen, beslissingen nemen. Dan probeer je het aan echte gebruikers te tonen en&amp;hellip; stilte. Een draaiende indicator. Geen idee welke agent wat doet of waarom het systeem gepauzeerd is. Dat is geen product — dat is een vertrouwensprobleem.&lt;/p&gt;
&lt;p&gt;Het Microsoft Agent Framework-team heeft zojuist een &lt;a href="https://devblogs.microsoft.com/agent-framework/ag-ui-multi-agent-workflow-demo/"&gt;fantastisch overzicht&lt;/a&gt; gepubliceerd over het koppelen van MAF-workflows aan &lt;a href="https://github.com/ag-ui-protocol/ag-ui"&gt;AG-UI&lt;/a&gt;, een open protocol voor het streamen van agent-uitvoeringsgebeurtenissen naar een frontend via Server-Sent Events. En eerlijk gezegd? Dit is precies de brug die we misten.&lt;/p&gt;
&lt;h2 id="waarom-dit-belangrijk-is-voor-net-ontwikkelaars"&gt;Waarom dit belangrijk is voor .NET-ontwikkelaars&lt;/h2&gt;
&lt;p&gt;Als je AI-aangedreven apps bouwt, ben je waarschijnlijk al tegen deze muur opgelopen. Je backend-orkestratie werkt prima — agents geven werk aan elkaar door, tools worden uitgevoerd, beslissingen worden genomen. Maar de frontend heeft geen idee wat er achter de schermen gebeurt. AG-UI lost dit op door een standaardprotocol te definiëren voor het streamen van agentgebeurtenissen (&lt;code&gt;RUN_STARTED&lt;/code&gt;, &lt;code&gt;STEP_STARTED&lt;/code&gt;, &lt;code&gt;TOOL_CALL_*&lt;/code&gt;, &lt;code&gt;TEXT_MESSAGE_*&lt;/code&gt;) rechtstreeks naar je UI-laag via SSE.&lt;/p&gt;
&lt;p&gt;De demo die ze bouwden is een klantenserviceworkflow met drie agents: een triageagent die verzoeken routeert, een terugbetalingsagent die financiële zaken afhandelt, en een orderagent die vervangingen beheert. Elke agent heeft zijn eigen tools, en de handoff-topologie is expliciet gedefinieerd — geen &amp;ldquo;bedenk het maar uit de prompt&amp;rdquo;-sfeer.&lt;/p&gt;
&lt;h2 id="de-handoff-topologie-is-de-echte-ster"&gt;De handoff-topologie is de echte ster&lt;/h2&gt;
&lt;p&gt;Wat mij opviel is hoe &lt;code&gt;HandoffBuilder&lt;/code&gt; je in staat stelt een gerichte routeringsgraf tussen agents te declareren:&lt;/p&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="n"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HandoffBuilder&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;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;ag_ui_handoff_workflow_demo&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;participants&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;triage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;refund&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;order&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;termination_condition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;termination_condition&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="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;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_handoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;triage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;refund&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&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;Refunds, damaged-item claims...&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="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_handoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;triage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&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;Replacement, exchange...&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="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_handoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;refund&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&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;Replacement logistics needed after refund.&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="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_handoff&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;triage&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&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;After replacement/shipping tasks complete.&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Elke &lt;code&gt;add_handoff&lt;/code&gt; maakt een gerichte koppeling met een beschrijving in natuurlijke taal. Het framework genereert handoff-tools voor elke agent op basis van deze topologie. Routeringsbeslissingen zijn daardoor gegrond in jouw orkestratiestucture, niet in wat het LLM toevallig wil doen. Dat is enorm belangrijk voor betrouwbaarheid in productie.&lt;/p&gt;
&lt;h2 id="human-in-the-loop-die-echt-werkt"&gt;Human-in-the-loop die echt werkt&lt;/h2&gt;
&lt;p&gt;De demo toont twee onderbrekingspatronen die elke echte agentapp nodig heeft:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tool-goedkeuringsonderbrekingen&lt;/strong&gt; — wanneer een agent een tool aanroept die is gemarkeerd met &lt;code&gt;approval_mode=&amp;quot;always_require&amp;quot;&lt;/code&gt;, pauzeert de workflow en stuurt een gebeurtenis. De frontend toont een goedkeuringsmodal met de toolnaam en argumenten. Geen token-verspillende herhalingsloops — gewoon een nette pauze-goedkeur-hervat-stroom.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Informatieverzoekonderbrekingen&lt;/strong&gt; — wanneer een agent meer context van de gebruiker nodig heeft (zoals een order-ID), pauzeert het en vraagt. De frontend toont de vraag, de gebruiker antwoordt, en de uitvoering gaat verder precies waar het gestopt was.&lt;/p&gt;
&lt;p&gt;Beide patronen worden gestreamd als standaard AG-UI-gebeurtenissen, zodat je frontend geen aangepaste logica per agent nodig heeft — het rendert gewoon wat er via de SSE-verbinding binnenkomt.&lt;/p&gt;
&lt;h2 id="het-aansluiten-is-verrassend-eenvoudig"&gt;Het aansluiten is verrassend eenvoudig&lt;/h2&gt;
&lt;p&gt;De integratie tussen MAF en AG-UI is één functieaanroep:&lt;/p&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;agent_framework.ag_ui&lt;/span&gt; &lt;span class="kn"&gt;import&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;AgentFrameworkWorkflow&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;add_agent_framework_fastapi_endpoint&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;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;FastAPI&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="n"&gt;demo_workflow&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AgentFrameworkWorkflow&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;workflow_factory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;_thread_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;create_handoff_workflow&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;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;ag_ui_handoff_workflow_demo&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;add_agent_framework_fastapi_endpoint&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;app&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;demo_workflow&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/handoff_demo&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;De &lt;code&gt;workflow_factory&lt;/code&gt; maakt een nieuwe workflow per thread, zodat elke conversatie geïsoleerde toestand heeft. Het endpoint regelt alle SSE-infrastructuur automatisch. Als je FastAPI al gebruikt (of het als lichte laag kunt toevoegen), is dit vrijwel nul wrijving.&lt;/p&gt;
&lt;h2 id="mijn-kijk"&gt;Mijn kijk&lt;/h2&gt;
&lt;p&gt;Voor ons als .NET-ontwikkelaars is de directe vraag: &amp;ldquo;Kan ik dit in C# doen?&amp;rdquo; Agent Framework is beschikbaar voor zowel .NET als Python, en het AG-UI-protocol is taalonafhankelijk (het is gewoon SSE). Dus hoewel deze specifieke demo Python en FastAPI gebruikt, is het patroon direct overdraagbaar. Je kunt een ASP.NET Core minimal API aansluiten met SSE-endpoints die hetzelfde AG-UI-gebeurtenisschema volgen.&lt;/p&gt;
&lt;p&gt;De grotere les is dat multi-agent UI&amp;rsquo;s een prioriteit worden, geen bijzaak. Als je iets bouwt waarbij agents met mensen interageren — klantenservice, goedkeuringsworkflows, documentverwerking — is deze combinatie van MAF-orkestratie en AG-UI-transparantie het te volgen patroon.&lt;/p&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;AG-UI + Microsoft Agent Framework geeft je het beste van beide werelden: robuuste multi-agent orkestratie op de backend en real-time zichtbaarheid op de frontend. Geen black-box agentinteracties meer.&lt;/p&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/agent-framework/ag-ui-multi-agent-workflow-demo/"&gt;volledige walkthrough&lt;/a&gt; en de &lt;a href="https://github.com/ag-ui-protocol/ag-ui"&gt;AG-UI protocol repository&lt;/a&gt; om dieper te gaan.&lt;/p&gt;</content:encoded></item><item><title>SQL MCP Server — De Juiste Manier om AI-agents Databasetoegang te Geven</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/sql-mcp-server-data-api-builder/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/sql-mcp-server-data-api-builder/</guid><description>SQL MCP Server van Data API builder geeft AI-agents veilige, deterministische databasetoegang zonder schema's bloot te stellen of te vertrouwen op NL2SQL.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/sql-mcp-server-data-api-builder/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Laten we eerlijk zijn: de meeste database-MCP-servers die vandaag beschikbaar zijn, zijn angstaanjagend. Ze nemen een zoekopdracht in natuurlijke taal, genereren SQL on-the-fly en voeren het uit op je productiegegevens.&lt;/p&gt;
&lt;p&gt;Het Azure SQL-team heeft zojuist &lt;a href="https://devblogs.microsoft.com/azure-sql/introducing-sql-mcp-server/"&gt;SQL MCP Server geïntroduceerd&lt;/a&gt;, en het neemt een fundamenteel andere aanpak.&lt;/p&gt;
&lt;h2 id="waarom-geen-nl2sql"&gt;Waarom geen NL2SQL?&lt;/h2&gt;
&lt;p&gt;Modellen zijn niet deterministisch. SQL MCP Server gebruikt een &lt;strong&gt;NL2DAB&lt;/strong&gt;-aanpak. De agent werkt met de entiteitsabstractielaag van Data API builder om nauwkeurige T-SQL deterministisch te produceren.&lt;/p&gt;
&lt;h2 id="zeven-tools-niet-zevenhonderd"&gt;Zeven tools, niet zevenhonderd&lt;/h2&gt;
&lt;p&gt;SQL MCP Server biedt precies zeven DML-tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;describe_entities&lt;/code&gt; — ontdek beschikbare entiteiten&lt;/li&gt;
&lt;li&gt;&lt;code&gt;create_record&lt;/code&gt; — rijen invoegen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;read_records&lt;/code&gt; — tabellen en views opvragen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update_record&lt;/code&gt; — rijen wijzigen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete_record&lt;/code&gt; — rijen verwijderen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;execute_entity&lt;/code&gt; — opgeslagen procedures uitvoeren&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aggregate_records&lt;/code&gt; — aggregatiequery&amp;rsquo;s&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="in-drie-opdrachten-aan-de-slag"&gt;In drie opdrachten aan de slag&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;dab init --database-type mssql --connection-string &lt;span class="s2"&gt;&amp;#34;@env(&amp;#39;sql_connection_string&amp;#39;)&amp;#34;&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;dab add Customers --source dbo.Customers --permissions &lt;span class="s2"&gt;&amp;#34;anonymous:*&amp;#34;&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;dab start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="het-beveiligingsverhaal-is-solide"&gt;Het beveiligingsverhaal is solide&lt;/h2&gt;
&lt;p&gt;RBAC op elke laag, Azure Key Vault-integratie, Microsoft Entra + aangepaste OAuth.&lt;/p&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/azure-sql/introducing-sql-mcp-server/"&gt;volledige post&lt;/a&gt; en &lt;a href="https://aka.ms/sql/mcp"&gt;documentatie&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Verbind Je MCP-servers op Azure Functions met Foundry-agents — Dit Is Hoe</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</guid><description>Bouw je MCP-server eén keer, deploy het naar Azure Functions en verbind het met Microsoft Foundry-agents met juiste authenticatie.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Er is één ding dat ik geweldig vind aan het MCP-ecosysteem: je bouwt je server één keer en het werkt overal.&lt;/p&gt;
&lt;p&gt;Lily Ma van het Azure SDK-team publiceerde een &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;praktische gids&lt;/a&gt; over het verbinden van MCP-servers die zijn geïmplementeerd op Azure Functions met Microsoft Foundry-agents.&lt;/p&gt;
&lt;h2 id="waarom-deze-combinatie-logisch-is"&gt;Waarom deze combinatie logisch is&lt;/h2&gt;
&lt;p&gt;Azure Functions geeft je schaalbare infrastructuur, ingebouwde authenticatie en serverless facturering. Microsoft Foundry geeft je AI-agents die kunnen redeneren en actie ondernemen.&lt;/p&gt;
&lt;h2 id="authenticatie-opties"&gt;Authenticatie-opties&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Methode&lt;/th&gt;
&lt;th&gt;Gebruikssituatie&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sleutelgebaseerd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ontwikkeling of servers zonder Entra auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microsoft Entra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Productie met beheerde identiteiten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OAuth identity passthrough&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Productie met gebruikerscontext&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Niet-geverifieerd&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dev/testen of alleen publieke gegevens&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="instellen"&gt;Instellen&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Deploy je MCP-server naar Azure Functions&lt;/strong&gt; — voorbeelden beschikbaar voor &lt;a href="https://github.com/Azure-Samples/remote-mcp-functions-dotnet"&gt;.NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schakel ingebouwde MCP-authenticatie in&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Haal de endpoint-URL op&lt;/strong&gt; — &lt;code&gt;https://&amp;lt;FUNCTION_APP_NAME&amp;gt;.azurewebsites.net/runtime/webhooks/mcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Voeg de MCP-server toe als tool in Foundry&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Lees de &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;volledige gids&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd Laat Je Nu AI-Agents Lokaal Uitvoeren en Debuggen — Dit Veranderde in Maart 2026</title><link>https://thedotnetblog.com/nl/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/nl/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>Azure Developer CLI bracht in maart 2026 zeven releases uit. Highlights: een lokale loop voor uitvoeren en debuggen van AI-agents, GitHub Copilot-integratie in projectopstelling en ondersteuning voor Container App Jobs.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Zeven releases in één maand. Dat is wat het Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;)-team in maart 2026 uitbracht, en de hoofdfunctie is waar ik op wachtte: &lt;strong&gt;een lokale loop voor uitvoeren en debuggen van AI-agents&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="ai-agents-uitvoeren-en-debuggen-zonder-implementeren"&gt;AI-agents uitvoeren en debuggen zonder implementeren&lt;/h2&gt;
&lt;p&gt;Dit is de grote. De nieuwe extensie &lt;code&gt;azure.ai.agents&lt;/code&gt; voegt een reeks opdrachten toe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — start je agent lokaal&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — stuurt berichten naar hem (lokaal of geïmplementeerd)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — toont containerstatus en gezondheid&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — streamt containerlogs in real-time&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voorheen betekende het testen van een AI-agent telkens implementeren naar Microsoft Foundry. Nu kun je lokaal itereren.&lt;/p&gt;
&lt;h2 id="github-copilot-maakt-je-azd-project-aan"&gt;GitHub Copilot maakt je azd-project aan&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; biedt nu een optie &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Een Copilot-agent maakt de configuratie voor je projectstructuur.&lt;/p&gt;
&lt;h2 id="container-app-jobs-en-implementatieverbeteringen"&gt;Container App Jobs en implementatieverbeteringen&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; implementeert nu &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; via de bestaande &lt;code&gt;host: containerapp&lt;/code&gt;-config&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configureerbare implementatie-time-outs&lt;/strong&gt;: Nieuwe &lt;code&gt;--timeout&lt;/code&gt;-vlag op &lt;code&gt;azd deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lokale build-fallback&lt;/strong&gt;: Wanneer remote ACR-build mislukt, schakelt &lt;code&gt;azd&lt;/code&gt; automatisch terug naar lokale Docker/Podman&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lokale preflight-validatie&lt;/strong&gt;: Bicep-parameters worden lokaal gevalideerd vóór implementatie&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;De lokale AI-agent debuggingloop is de ster van deze release. Bekijk de &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;volledige releasenotes&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>KubeCon Europe 2026: Waar .NET-ontwikkelaars Echt Op Moeten Letten</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/</guid><description>Microsoft gooide een muur van Kubernetes-aankondigingen bij KubeCon Europe 2026. Dit is de gefilterde versie — alleen de AKS- en cloud-native-updates die ertoe doen als je .NET-apps levert.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/kubecon-2026-aks-updates-dotnet-developers/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Microsoft publiceerde zojuist hun &lt;a href="https://opensource.microsoft.com/blog/2026/03/24/whats-new-with-microsoft-in-open-source-and-kubernetes-at-kubecon-cloudnativecon-europe-2026/"&gt;volledige KubeCon Europe 2026-samenvatting&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="mtls-zonder-service-mesh-belasting"&gt;mTLS zonder service mesh-belasting&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/application-network"&gt;Azure Kubernetes Application Network&lt;/a&gt; geeft je onderlinge TLS, applicatiebewuste autorisatie en verkeerstelemetrie — zonder een volledige sidecar-mesh. Je ASP.NET Core API&amp;rsquo;s die met achtergrondworkers communiceren — alles versleuteld op netwerkniveau, zonder wijzigingen in applicatiecode.&lt;/p&gt;
&lt;h2 id="gpu-observeerbaarheid"&gt;GPU-observeerbaarheid&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://aka.ms/aks/managed-gpu-metrics"&gt;AKS toont nu GPU-metrics native&lt;/a&gt; in beheerde Prometheus en Grafana. Geen aangepaste exporteurs.&lt;/p&gt;
&lt;h2 id="netwerken-over-clusters-heen"&gt;Netwerken over clusters heen&lt;/h2&gt;
&lt;p&gt;Azure Kubernetes Fleet Manager levert nu &lt;a href="https://aka.ms/kubernetes-fleet/networking/cross-cluster"&gt;cross-cluster-netwerken&lt;/a&gt; — unified connectivity, globaal serviceregister.&lt;/p&gt;
&lt;h2 id="veiligere-upgrades"&gt;Veiligere upgrades&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Blauw-groene agent pool-upgrades&lt;/strong&gt; maken een parallel knooppuntpool. &lt;strong&gt;Agent pool-terugdraaien&lt;/strong&gt; laat je terugkeren naar de vorige versie.&lt;/p&gt;
&lt;h2 id="waar-te-beginnen"&gt;Waar te beginnen&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Observeerbaarheid eerst&lt;/strong&gt; — schakel GPU-metrics en netwerkstroomlogboeken in&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probeer blauw-groene upgrades&lt;/strong&gt; — test de terugdraaiworkflow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pilot identiteitsbewust netwerken&lt;/strong&gt; — schakel mTLS in voor één servicepad&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item><item><title>SQL MCP Server, Copilot in SSMS en een Database Hub met AI-agents: Wat Er Echt Toe Doet van SQLCon 2026</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-ai-microsoft-databases-what-matters/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-ai-microsoft-databases-what-matters/</guid><description>Microsoft deed een reeks databaseaankondigingen op SQLCon 2026. Dit is wat er echt toe doet als je AI-aangedreven apps bouwt op Azure SQL.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/agentic-ai-microsoft-databases-what-matters/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Microsoft heeft zojuist &lt;a href="https://www.microsoft.com/en-us/sql-server/blog/2026/03/18/advancing-agentic-ai-with-microsoft-databases-across-a-unified-data-estate/"&gt;SQLCon 2026 gelanceerd naast FabCon in Atlanta&lt;/a&gt;. Ik sla de enterprise-prijsslides over en focus op de onderdelen die ertoe doen voor ontwikkelaars die met Azure SQL en AI bouwen.&lt;/p&gt;
&lt;h2 id="sql-mcp-server-is-in-openbare-preview"&gt;SQL MCP Server is in openbare preview&lt;/h2&gt;
&lt;p&gt;Dit is de kop voor mij. Azure SQL Database Hyperscale heeft nu een &lt;strong&gt;SQL MCP Server&lt;/strong&gt; in openbare preview waarmee je SQL-gegevens veilig kunt verbinden met AI-agents en Copilots via het &lt;a href="https://modelcontextprotocol.io/"&gt;Model Context Protocol&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voor .NET-ontwikkelaars die AI-agents bouwen met Semantic Kernel of Microsoft Agent Framework opent dit een schoon integratiepad. Je agent moet voorraad controleren? Een klantrecord opzoeken? Een bestelling valideren? MCP geeft het een gestructureerde manier om dat te doen zonder aangepaste data-ophaalcode.&lt;/p&gt;
&lt;h2 id="github-copilot-in-ssms-22-is-nu-ga"&gt;GitHub Copilot in SSMS 22 is nu GA&lt;/h2&gt;
&lt;p&gt;Als je tijd doorbrengt in SQL Server Management Studio, is GitHub Copilot nu algemeen beschikbaar in SSMS 22. Dezelfde Copilot-ervaring die je al gebruikt in VS Code en Visual Studio, maar voor T-SQL.&lt;/p&gt;
&lt;p&gt;De praktische waarde is direct: op chat gebaseerde hulp bij het schrijven van query&amp;rsquo;s, refactoring van opgeslagen procedures, het oplossen van prestatieproblemen en beheertaken.&lt;/p&gt;
&lt;h2 id="vectorindexen-kregen-een-serieuze-upgrade"&gt;Vectorindexen kregen een serieuze upgrade&lt;/h2&gt;
&lt;p&gt;Azure SQL Database heeft nu snellere, capabelere vectorindexen met volledige ondersteuning voor invoegen, bijwerken en verwijderen. Dat betekent dat je vectorgegevens in real-time actueel blijven — geen batchherindexering nodig.&lt;/p&gt;
&lt;p&gt;Wat nieuw is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kwantisering&lt;/strong&gt; voor kleinere indexgroottes zonder te veel nauwkeurigheid te verliezen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iteratief filteren&lt;/strong&gt; voor preciezere resultaten&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tightere query-optimizer-integratie&lt;/strong&gt; voor voorspelbare prestaties&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Als je RAG doet met Azure SQL als vectoropslag, zijn deze verbeteringen direct bruikbaar.&lt;/p&gt;
&lt;h2 id="database-hub-in-fabric-agentisch-beheer"&gt;Database Hub in Fabric: agentisch beheer&lt;/h2&gt;
&lt;p&gt;Microsoft kondigde de &lt;strong&gt;Database Hub in Microsoft Fabric&lt;/strong&gt; aan (vroege toegang), die één venster biedt over Azure SQL, Cosmos DB, PostgreSQL, MySQL en SQL Server via Arc.&lt;/p&gt;
&lt;p&gt;AI-agents bewaken continu je database-omgeving, signaleren wat veranderd is, leggen uit waarom het belangrijk is en stellen voor wat je vervolgens moet doen.&lt;/p&gt;
&lt;h2 id="wat-dit-betekent-voor-net-ontwikkelaars"&gt;Wat dit betekent voor .NET-ontwikkelaars&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Probeer SQL MCP Server&lt;/strong&gt; als je AI-agents bouwt — de schoonste manier om agents databasetoegang te geven.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schakel Copilot in SSMS in&lt;/strong&gt; als je dat nog niet hebt gedaan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kijk naar vectorindexen&lt;/strong&gt; als je RAG doet en momenteel een aparte vectoropslag gebruikt.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bekijk de &lt;a href="https://www.microsoft.com/en-us/sql-server/blog/2026/03/18/advancing-agentic-ai-with-microsoft-databases-across-a-unified-data-estate/"&gt;volledige aankondiging van Shireesh Thota&lt;/a&gt; en &lt;a href="https://aka.ms/database-hub"&gt;schrijf je in voor vroege toegang tot Database Hub&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Achtergrondreacties in Microsoft Agent Framework: Geen Timeout-angst Meer</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/background-responses-agent-framework-long-running-tasks/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/background-responses-agent-framework-long-running-tasks/</guid><description>Microsoft Agent Framework laat je nu langlopende AI-taken offloaden met vervolgingstokens. Zo werken achtergrondreacties en waarom ze belangrijk zijn voor je .NET-agents.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/background-responses-agent-framework-long-running-tasks/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Als je ooit iets hebt gebouwd met redeneermodellen zoals o3 of GPT-5.2, ken je de pijn. Je agent begint een complexe taak te verwerken, de client zit te wachten en ergens treedt een verbindingstime-out op.&lt;/p&gt;
&lt;p&gt;Microsoft Agent Framework heeft zojuist &lt;a href="https://devblogs.microsoft.com/agent-framework/handling-long-running-operations-with-background-responses/"&gt;achtergrondreacties&lt;/a&gt; uitgebracht — en eerlijk gezegd is dit een van die functies die er vanaf dag één had moeten zijn.&lt;/p&gt;
&lt;h2 id="hoe-vervolgingstokens-werken"&gt;Hoe vervolgingstokens werken&lt;/h2&gt;
&lt;p&gt;In plaats van te blokkeren start je de agenttaak en krijg je een &lt;strong&gt;vervolgingstoken&lt;/strong&gt; terug. Denk eraan als een klaim-ticket bij een reparatiewinkel:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Stuur je verzoek met &lt;code&gt;AllowBackgroundResponses = true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Als de agent achtergrondverwerking ondersteunt, krijg je een vervolgingstoken&lt;/li&gt;
&lt;li&gt;Poll op je planning totdat het token &lt;code&gt;null&lt;/code&gt; terugkeert&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AgentRunOptions&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&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="n"&gt;AllowBackgroundResponses&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&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;AgentSession&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateSessionAsync&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;AgentResponse&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&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="s"&gt;&amp;#34;Write a detailed market analysis for the Q4 product launch.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&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;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ContinuationToken&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="kc"&gt;null&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="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TimeSpan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FromSeconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;2&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;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ContinuationToken&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ContinuationToken&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;response&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;options&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;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&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;h2 id="wanneer-dit-te-gebruiken"&gt;Wanneer dit te gebruiken&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Complexe redeneer taken&lt;/strong&gt; — meerstapsanalyse, diepgaand onderzoek&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lange contentgeneratie&lt;/strong&gt; — gedetailleerde rapporten, meerdelige documenten&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Onbetrouwbare netwerken&lt;/strong&gt; — mobiele clients, edge-implementaties&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asynchrone UX-patronen&lt;/strong&gt; — taak indienen, iets anders doen, terugkomen voor resultaten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/agent-framework/handling-long-running-operations-with-background-responses/"&gt;volledige documentatie&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps MCP Server Beschikbaar in Microsoft Foundry: Wat Dit Betekent voor je AI-Agents</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</guid><description>De Azure DevOps MCP Server is nu beschikbaar in Microsoft Foundry. Verbind je AI-agents rechtstreeks met DevOps-workflows — werkitems, repos, pipelines — met een paar klikken.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;MCP (Model Context Protocol) heeft z&amp;rsquo;n moment. Als je het AI-agent-ecosysteem volgt, heb je waarschijnlijk MCP-servers overal zien opduiken.&lt;/p&gt;
&lt;p&gt;Nu is de &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;Azure DevOps MCP Server beschikbaar in Microsoft Foundry&lt;/a&gt;, en dit is een van die integraties die je laat nadenken over de praktische mogelijkheden.&lt;/p&gt;
&lt;h2 id="wat-er-eigenlijk-gebeurt"&gt;Wat er eigenlijk gebeurt&lt;/h2&gt;
&lt;p&gt;Microsoft heeft de Azure DevOps MCP Server al uitgebracht als &lt;a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview"&gt;publieke preview&lt;/a&gt;. Nieuw is de Foundry-integratie. Je kunt de Azure DevOps MCP Server nu toevoegen aan je Foundry-agents rechtstreeks vanuit de toolcatalogus.&lt;/p&gt;
&lt;h2 id="instellen"&gt;Instellen&lt;/h2&gt;
&lt;p&gt;De instelling is verrassend eenvoudig:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ga in je Foundry-agent naar &lt;strong&gt;Tools toevoegen&lt;/strong&gt; &amp;gt; &lt;strong&gt;Catalogus&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Zoek op &amp;ldquo;Azure DevOps&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Selecteer de Azure DevOps MCP Server (preview) en klik op &lt;strong&gt;Aanmaken&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Voer je organisatienaam in en verbind&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="toegang-beheren"&gt;Toegang beheren&lt;/h2&gt;
&lt;p&gt;Je kunt opgeven welke tools beschikbaar zijn voor je agent. Principe van minste privileges, toegepast op je AI-agents.&lt;/p&gt;
&lt;h2 id="waarom-dit-interessant-is-voor-net-teams"&gt;Waarom dit interessant is voor .NET-teams&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sprint-planningsassistenten&lt;/strong&gt; — agents die werkitems ophalen en sprintcapaciteit voorstellen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code review-bots&lt;/strong&gt; — agents die PR-context begrijpen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incident response&lt;/strong&gt; — agents die werkitems aanmaken en bugs correleren&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Onboarding&lt;/strong&gt; — echte antwoorden gebaseerd op projectdata&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="samenvatting"&gt;Samenvatting&lt;/h2&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;volledige aankondiging&lt;/a&gt; voor details.&lt;/p&gt;</content:encoded></item><item><title>Foundry Agent Service is GA: Wat Er Echt Toe Doet voor .NET Agent-bouwers</title><link>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</guid><description>Microsofts Foundry Agent Service is GA gegaan met privénetwerken, Voice Live, productieevaluaties en een open multi-model runtime.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Laten we eerlijk zijn — het bouwen van een AI-agentprototype is het gemakkelijke deel. Het moeilijke deel is alles erna.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;De Foundry Agent Service is GA gegaan&lt;/a&gt;, en deze release is precies gericht op die &amp;ldquo;alles erna&amp;rdquo;-kloof.&lt;/p&gt;
&lt;h2 id="gebouwd-op-de-responses-api"&gt;Gebouwd op de Responses API&lt;/h2&gt;
&lt;p&gt;De volgende generatie Foundry Agent Service is gebouwd op de OpenAI Responses API. De architectuur is bewust open — je bent niet gebonden aan één modelprovider.&lt;/p&gt;
&lt;h2 id="privénetwerken-de-enterprise-blokkade-verwijderd"&gt;Privénetwerken: de enterprise-blokkade verwijderd&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Geen publieke egress&lt;/strong&gt; — agentverkeer raakt nooit het openbare internet&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Container/subnet-injectie&lt;/strong&gt; in je netwerk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toolconnectiviteit inbegrepen&lt;/strong&gt; — MCP-servers, Azure AI Search via privépaden&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcp-authenticatie"&gt;MCP-authenticatie&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Auth-methode&lt;/th&gt;
&lt;th&gt;Wanneer te gebruiken&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sleutelgebaseerd&lt;/td&gt;
&lt;td&gt;Eenvoudige gedeelde toegang&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Agent Identity&lt;/td&gt;
&lt;td&gt;Service-to-service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Managed Identity&lt;/td&gt;
&lt;td&gt;Per-project-isolatie&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OAuth Identity Passthrough&lt;/td&gt;
&lt;td&gt;Gebruikersdelegatie&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="voice-live"&gt;Voice Live&lt;/h2&gt;
&lt;p&gt;Voice Live vouwt STT, LLM en TTS samen in één beheerde API.&lt;/p&gt;
&lt;h2 id="evaluaties"&gt;Evaluaties&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Kant-en-klare evaluatoren&lt;/strong&gt; — coherentie, relevantie, grounding&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aangepaste evaluatoren&lt;/strong&gt; — je eigen bedrijfslogica&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue evaluatie&lt;/strong&gt; — steekproeven van live productieverkeer&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bekijk de &lt;a href="https://learn.microsoft.com/azure/foundry/quickstarts/get-started-code"&gt;quickstart-gids&lt;/a&gt; en de &lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;GA-aankondiging&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Van Laptop naar Productie: AI-agents Implementeren naar Microsoft Foundry met Twee Opdrachten</title><link>https://thedotnetblog.com/nl/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/nl/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>De Azure Developer CLI heeft nu 'azd ai agent'-opdrachten die je AI-agent in minuten van lokale ontwikkeling naar een live Foundry-eindpunt brengen.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Dit bericht is automatisch vertaald. Voor het origineel, &lt;a href="https://thedotnetblog.com/nl/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/"&gt;klik hier&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ken je die kloof tussen &amp;lsquo;het werkt op mijn machine&amp;rsquo; en &amp;lsquo;het is geïmplementeerd en verwerkt verkeer&amp;rsquo;? Voor AI-agents was die kloof pijnlijk breed.&lt;/p&gt;
&lt;p&gt;De Azure Developer CLI heeft dit een &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;zaak van twee opdrachten&lt;/a&gt; gemaakt.&lt;/p&gt;
&lt;h2 id="de-nieuwe-azd-ai-agent-workflow"&gt;De nieuwe &lt;code&gt;azd ai agent&lt;/code&gt; workflow&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 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;Dat is alles. &lt;code&gt;azd ai agent init&lt;/code&gt; maakt een infrastructuur-als-code-skelet in je repo, en &lt;code&gt;azd up&lt;/code&gt; richt alles in op Azure en publiceert je agent.&lt;/p&gt;
&lt;h2 id="wat-er-onder-de-motorkap-gebeurt"&gt;Wat er onder de motorkap gebeurt&lt;/h2&gt;
&lt;p&gt;De &lt;code&gt;init&lt;/code&gt;-opdracht genereert echte, inspecterbare Bicep-sjablonen in je repo — Foundry Resource, Foundry Project, modelimplementatieconfiguratie, beheerde identiteit met RBAC.&lt;/p&gt;
&lt;h2 id="dev-inner-loop"&gt;Dev inner loop&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 ai agent run &lt;span class="c1"&gt;# agent lokaal starten&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent invoke &lt;span class="c1"&gt;# testprompts sturen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow &lt;span class="c1"&gt;# real-time logs streamen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="de-volledige-opdrachtset"&gt;De volledige opdrachtset&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Opdracht&lt;/th&gt;
&lt;th&gt;Wat het doet&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;Foundry-agentproject scaffolden met 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;Middelen inrichten en agent implementeren&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;Prompts sturen naar externe of lokale agent&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;Agent lokaal uitvoeren&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;Real-time logs streamen&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;Alle Azure-middelen opruimen&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Bekijk de &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;volledige walkthrough&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>