<?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>Devops | The .NET Blog</title><link>https://thedotnetblog.com/tags/devops/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Mon, 11 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>SDD Conference 2026</title><link>https://thedotnetblog.com/events/sdd-conference-2026/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://thedotnetblog.com/events/sdd-conference-2026/</guid><description>A 5-day software development conference at the Barbican Centre in London with 78 sessions and 14 workshops covering architecture, .NET, AI, Azure, DevOps, and more.</description><content:encoded>&lt;p&gt;&lt;strong&gt;SDD 2026&lt;/strong&gt; runs from &lt;strong&gt;May 11–15, 2026&lt;/strong&gt; at the &lt;strong&gt;Barbican Centre in London&lt;/strong&gt;. The core 3-day conference is Tuesday through Thursday, with optional full-day workshops on Monday and Friday.&lt;/p&gt;
&lt;p&gt;With &lt;strong&gt;78 sessions&lt;/strong&gt; and &lt;strong&gt;14 workshops&lt;/strong&gt;, this is one of the most packed developer conferences in Europe.&lt;/p&gt;
&lt;h2 id="topics"&gt;Topics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Architectural Thinking&lt;/li&gt;
&lt;li&gt;Functional Code in C# 13&lt;/li&gt;
&lt;li&gt;Serverless Design&lt;/li&gt;
&lt;li&gt;Semantic AI&lt;/li&gt;
&lt;li&gt;Azure Kubernetes Services&lt;/li&gt;
&lt;li&gt;Lean DevOps Strategies&lt;/li&gt;
&lt;li&gt;The Model Context Protocol (MCP)&lt;/li&gt;
&lt;li&gt;Agentic AI in .NET&lt;/li&gt;
&lt;li&gt;Refactoring the Monolith&lt;/li&gt;
&lt;li&gt;Coding Faster with LLMs&lt;/li&gt;
&lt;li&gt;Cryptography in a Post-Quantum World&lt;/li&gt;
&lt;li&gt;Local First Development&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="speakers"&gt;Speakers&lt;/h2&gt;
&lt;p&gt;World-class lineup including &lt;strong&gt;Kevlin Henney&lt;/strong&gt;, &lt;strong&gt;Neal Ford&lt;/strong&gt;, &lt;strong&gt;Sander Hoogendoorn&lt;/strong&gt;, &lt;strong&gt;Andrew Clymer&lt;/strong&gt;, &lt;strong&gt;Jacqui Read&lt;/strong&gt;, &lt;strong&gt;Christian Weyer&lt;/strong&gt;, &lt;strong&gt;Jeff Prosise&lt;/strong&gt;, &lt;strong&gt;Jules May&lt;/strong&gt;, &lt;strong&gt;Oliver Sturm&lt;/strong&gt;, and &lt;strong&gt;Raju Gandhi&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="tickets-and-info"&gt;Tickets and info&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sddconf.com/"&gt;Event website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sddvault.s3.amazonaws.com/assets/SDD_2026_schedule.pdf"&gt;Full agenda PDF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sddconf.com/register"&gt;Registration options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;98% of SDD 2025 attendees rated the overall experience as good, very good, or excellent.&lt;/p&gt;</content:encoded></item><item><title>Azure Developer CLI (azd) April 2026 Updates</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</guid><description>azd shipped five releases in April 2026, headlined by multi-language hook support for Python, JavaScript, TypeScript, and .NET — plus azd update public preview, AI quota preflight checks, and more.</description><content:encoded>&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;Azure Developer CLI (azd) shipped five releases in April 2026&lt;/a&gt; (1.23.14 through 1.24.2), with the big story being hooks that now run in Python, JavaScript, TypeScript, and .NET — not just Bash and PowerShell.&lt;/p&gt;
&lt;h2 id="multi-language-hooks-in-azureyaml"&gt;Multi-language hooks in azure.yaml&lt;/h2&gt;
&lt;p&gt;Hooks can now point to &lt;code&gt;.py&lt;/code&gt;, &lt;code&gt;.js&lt;/code&gt;, &lt;code&gt;.ts&lt;/code&gt;, or &lt;code&gt;.cs&lt;/code&gt; files in addition to shell scripts. Each language gets automatic dependency resolution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; — detects &lt;code&gt;requirements.txt&lt;/code&gt; or &lt;code&gt;pyproject.toml&lt;/code&gt;, creates a virtualenv, and installs deps before running. Configure the env name with &lt;code&gt;virtualEnvName&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript / TypeScript&lt;/strong&gt; — detects &lt;code&gt;package.json&lt;/code&gt; and runs &lt;code&gt;npm install&lt;/code&gt; automatically. TypeScript executes via &lt;code&gt;npx tsx&lt;/code&gt; with no compile step needed. Choose your package manager with the &lt;code&gt;packageManager&lt;/code&gt; config block.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET&lt;/strong&gt; — runs &lt;code&gt;.cs&lt;/code&gt; files with &lt;code&gt;dotnet run&lt;/code&gt;. Single-file scripts are supported on .NET 10+. Configure the target framework via the &lt;code&gt;configuration/framework&lt;/code&gt; block.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This means teams that already live in one of these languages no longer need to maintain a separate Bash or PowerShell hook just to wire up provisioning lifecycle events.&lt;/p&gt;
&lt;h2 id="azd-update-graduates-to-public-preview"&gt;azd update graduates to public preview&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; is now in public preview across all platforms. A single command handles the update regardless of how azd was originally installed — no more tracking down Homebrew, WinGet, or MSI paths separately.&lt;/p&gt;
&lt;h2 id="non-interactive-mode-via-azd_non_interactive"&gt;Non-interactive mode via AZD_NON_INTERACTIVE&lt;/h2&gt;
&lt;p&gt;Setting &lt;code&gt;AZD_NON_INTERACTIVE=true&lt;/code&gt; (or using &lt;code&gt;--non-interactive&lt;/code&gt; / &lt;code&gt;--no-prompt&lt;/code&gt;) now produces consistent, deterministic failures in CI/CD pipelines when a required input cannot be resolved automatically. Previously the behavior was inconsistent across commands.&lt;/p&gt;
&lt;h2 id="ai-model-quota-preflight-check"&gt;AI model quota preflight check&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd provision&lt;/code&gt; validates Azure Cognitive Services quota before attempting to provision AI model resources. Deployments that would fail due to quota limits now surface the error early in the process rather than partway through provisioning.&lt;/p&gt;
&lt;h2 id="fix-this-error-in-copilot-troubleshooting"&gt;&amp;ldquo;Fix this error&amp;rdquo; in Copilot troubleshooting&lt;/h2&gt;
&lt;p&gt;The azd Copilot troubleshooting integration gains the ability to directly apply a suggested fix — not just describe it. When the agent identifies a fixable issue, it can make the change in-place.&lt;/p&gt;
&lt;h2 id="custom-provisioning-providers-and-key-vault-secret-resolver"&gt;Custom provisioning providers and Key Vault secret resolver&lt;/h2&gt;
&lt;p&gt;Extension authors can now register alternative infrastructure backends with &lt;code&gt;WithProvisioningProvider()&lt;/code&gt;. Separately, azd automatically resolves &lt;code&gt;@Microsoft.KeyVault(...)&lt;/code&gt; references before passing configuration to extensions, removing the need for manual secret resolution in custom providers.&lt;/p&gt;
&lt;h2 id="template-and-watch-mode-exclusions"&gt;Template and watch-mode exclusions&lt;/h2&gt;
&lt;p&gt;Two new ignore files give finer control over file handling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdignore&lt;/code&gt;&lt;/strong&gt; — excludes contributor-only files (docs, CI configs) from template copies so end users get a clean project scaffold.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdxignore&lt;/code&gt;&lt;/strong&gt; — excludes directories from triggering rebuilds during &lt;code&gt;azd x watch&lt;/code&gt;, reducing noise during iterative development.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reserved-name-preflight-and-dockernetwork-option"&gt;Reserved-name preflight and docker.network option&lt;/h2&gt;
&lt;p&gt;azd now warns when predicted resource names would contain Azure reserved words (&lt;code&gt;MICROSOFT&lt;/code&gt;, &lt;code&gt;WINDOWS&lt;/code&gt;, or the &lt;code&gt;LOGIN&lt;/code&gt; prefix) before provisioning begins. A new &lt;code&gt;docker.network&lt;/code&gt; option passes &lt;code&gt;--network&lt;/code&gt; to &lt;code&gt;docker build&lt;/code&gt;, which is useful in corporate proxy environments that require a specific Docker network.&lt;/p&gt;
&lt;h2 id="security-fixes"&gt;Security fixes&lt;/h2&gt;
&lt;p&gt;The Windows MSI package now includes code-signing verification. A separate fix closes an environment variable leak that could expose values across extension command boundaries.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A packed month — the multi-language hook support in particular removes a real friction point for teams not working primarily in Bash. See the &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;full release notes&lt;/a&gt; for the complete changelog across all five releases.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Server April 2026 Patch — PR Completion Fix and Security Updates</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-server-april-2026-patch/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-server-april-2026-patch/</guid><description>Azure DevOps Server gets Patch 3 with a fix for PR completion failures, improved sign-out validation, and restored GitHub Enterprise Server PAT connections.</description><content:encoded>&lt;p&gt;Quick heads-up for teams running self-hosted Azure DevOps Server: Microsoft released &lt;a href="https://devblogs.microsoft.com/devops/april-patches-for-azure-devops-server/"&gt;Patch 3 for April 2026&lt;/a&gt; with three targeted fixes.&lt;/p&gt;
&lt;h2 id="whats-fixed"&gt;What&amp;rsquo;s fixed&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pull request completion failures&lt;/strong&gt; — a null reference exception during work item auto-completion could cause PR merges to fail. If you&amp;rsquo;ve hit random PR completion errors, this is likely the cause&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sign-out redirect validation&lt;/strong&gt; — improved validation during sign-out to prevent potential malicious redirects. This is a security fix worth applying promptly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub Enterprise Server PAT connections&lt;/strong&gt; — creating Personal Access Token connections to GitHub Enterprise Server was broken, now it&amp;rsquo;s restored&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-update"&gt;How to update&lt;/h2&gt;
&lt;p&gt;Download &lt;a href="https://aka.ms/devopsserverpatch3"&gt;Patch 3&lt;/a&gt; and run the installer. To verify the patch is applied:&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;&amp;lt;patch-installer&amp;gt;.exe CheckInstall
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you&amp;rsquo;re running Azure DevOps Server on-premises, Microsoft strongly recommends staying on the latest patch for both security and reliability. Check the &lt;a href="https://learn.microsoft.com/azure/devops/server/release-notes/azuredevopsserver?view=azure-devops#azure-devops-server-patch-3-release-date-april-14-2026"&gt;release notes&lt;/a&gt; for full details.&lt;/p&gt;</content:encoded></item><item><title>Agentic Platform Engineering Is Getting Real — Git-APE Shows How</title><link>https://thedotnetblog.com/news/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/news/emiliano-montesdeoca/agentic-platform-engineering-git-ape/</guid><description>Microsoft's Git-APE project puts agentic platform engineering into practice — using GitHub Copilot agents and Azure MCP to turn natural-language requests into validated cloud infrastructure.</description><content:encoded>&lt;p&gt;Platform engineering has been one of those terms that sounds great in conference talks but usually means &amp;ldquo;we built an internal portal and a Terraform wrapper.&amp;rdquo; The real promise — self-service infrastructure that&amp;rsquo;s actually safe, governed, and fast — has always been a few steps away.&lt;/p&gt;
&lt;p&gt;The Azure team just published &lt;a href="https://devblogs.microsoft.com/all-things-azure/putting-agentic-platform-engineering-to-the-test/"&gt;Part 2 of their agentic platform engineering series&lt;/a&gt;, and this one is all about the hands-on implementation. They call it &lt;strong&gt;Git-APE&lt;/strong&gt; (yes, the acronym is intentional), and it&amp;rsquo;s an open-source project that uses GitHub Copilot agents plus Azure MCP servers to turn natural-language requests into validated, deployed infrastructure.&lt;/p&gt;
&lt;h2 id="what-git-ape-actually-does"&gt;What Git-APE actually does&lt;/h2&gt;
&lt;p&gt;The core idea: instead of developers learning Terraform modules, navigating portal UIs, or filing tickets to a platform team, they talk to a Copilot agent. The agent interprets the intent, generates Infrastructure-as-Code, validates it against policies, and deploys — all within VS Code.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the setup:&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 the workspace in VS Code, and the agent configuration files are auto-discovered by GitHub Copilot. You interact with the agent directly:&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;The agent uses Azure MCP Server under the hood to interact with Azure services. The MCP configuration in VS Code settings enables specific capabilities:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;azureMcp.serverMode&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;namespace&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="nt"&gt;&amp;#34;azureMcp.enabledServices&amp;#34;&lt;/span&gt;&lt;span class="p"&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="s2"&gt;&amp;#34;deploy&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;bestpractices&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;group&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="s2"&gt;&amp;#34;subscription&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;functionapp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;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="s2"&gt;&amp;#34;sql&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;monitor&amp;#34;&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="nt"&gt;&amp;#34;azureMcp.readOnly&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&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;h2 id="why-this-matters"&gt;Why this matters&lt;/h2&gt;
&lt;p&gt;For those of us building on Azure, this shifts the platform engineering conversation from &amp;ldquo;how do we build a portal&amp;rdquo; to &amp;ldquo;how do we describe our guardrails as APIs.&amp;rdquo; When your platform&amp;rsquo;s interface is an AI agent, the quality of your constraints and policies becomes the product.&lt;/p&gt;
&lt;p&gt;The Part 1 blog laid out the theory: well-described APIs, control schemas, and explicit guardrails make platforms agent-ready. Part 2 proves it works by shipping actual tooling. The agent doesn&amp;rsquo;t just blindly generate resources — it validates against best practices, respects naming conventions, and applies your organization&amp;rsquo;s policies.&lt;/p&gt;
&lt;p&gt;Clean-up is just as easy:&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="my-take"&gt;My take&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ll be honest — this one is more about the pattern than the specific tool. Git-APE itself is a demo/reference architecture. But the underlying idea — agents as the interface to your platform, MCP as the protocol, GitHub Copilot as the host — is where enterprise developer experience is heading.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a platform team looking at how to make your internal tooling agent-friendly, there&amp;rsquo;s no better starting point. And if you&amp;rsquo;re a .NET developer wondering how this connects to your world: the Azure MCP Server and GitHub Copilot agents work with any Azure workload. Your ASP.NET Core API, your .NET Aspire stack, your containerized microservices — all of it can be the target of an agentic deployment flow.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Git-APE is an early but concrete look at agentic platform engineering in practice. Clone the &lt;a href="https://github.com/Azure/git-ape"&gt;repo&lt;/a&gt;, try the demo, and start thinking about how your platform&amp;rsquo;s APIs and policies would need to look for an agent to safely use them.&lt;/p&gt;
&lt;p&gt;Read the &lt;a href="https://devblogs.microsoft.com/all-things-azure/putting-agentic-platform-engineering-to-the-test/"&gt;full post&lt;/a&gt; for the walkthrough and video demos.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Finally Fixes the Markdown Editor UX Everyone Complained About</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>The Azure DevOps Markdown editor for work items gets a clearer preview-vs-edit mode distinction. It's a small change that fixes a genuinely annoying workflow issue.</description><content:encoded>&lt;p&gt;If you use Azure Boards, you&amp;rsquo;ve probably experienced this: you&amp;rsquo;re reading through a work item description, maybe reviewing acceptance criteria, and you accidentally double-click. Boom — you&amp;rsquo;re in edit mode. You didn&amp;rsquo;t want to edit anything. You were just reading.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;announced the fix&lt;/a&gt;, and it&amp;rsquo;s one of those changes that sounds tiny but actually removes real friction from your daily workflow.&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;The Markdown editor for work item text fields now opens in &lt;strong&gt;preview mode by default&lt;/strong&gt;. You can read and interact with the content — follow links, review formatting — without worrying about accidentally entering edit mode.&lt;/p&gt;
&lt;p&gt;When you actually want to edit, you click the edit icon at the top of the field. When you&amp;rsquo;re done, you exit back to preview mode explicitly. Simple, intentional, predictable.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it. That&amp;rsquo;s the change.&lt;/p&gt;
&lt;h2 id="why-this-matters-more-than-it-sounds"&gt;Why this matters more than it sounds&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;community feedback thread&lt;/a&gt; on this was long. The double-click-to-edit behavior was introduced with the Markdown editor back in July 2025, and the complaints started almost immediately. The problem wasn&amp;rsquo;t just accidental edits — it was that the whole interaction felt unpredictable. You never knew if clicking would read or edit.&lt;/p&gt;
&lt;p&gt;For teams that do sprint planning, backlog grooming, or code review with Azure Boards, this kind of micro-friction compounds. Every accidental edit mode entry is a context switch. Every &amp;ldquo;wait, did I change something?&amp;rdquo; moment is wasted attention.&lt;/p&gt;
&lt;p&gt;The new default respects the most common interaction pattern: you read work items far more often than you edit them.&lt;/p&gt;
&lt;h2 id="rollout-status"&gt;Rollout status&lt;/h2&gt;
&lt;p&gt;This is already rolling out to a subset of customers and expanding to everyone over the next two to three weeks. If you&amp;rsquo;re not seeing it yet, you will soon.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Not every improvement needs to be a headline feature. Sometimes the best update is just removing something annoying. This is one of those — a small UX fix that makes Azure Boards feel less hostile to people who just want to read their work items in peace.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps MCP Server Lands in Microsoft Foundry: What This Means for Your AI Agents</title><link>https://thedotnetblog.com/news/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/news/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</guid><description>The Azure DevOps MCP Server is now available in Microsoft Foundry. Connect your AI agents directly to DevOps workflows — work items, repos, pipelines — with a few clicks.</description><content:encoded>&lt;p&gt;MCP (Model Context Protocol) has been having a moment. If you&amp;rsquo;ve been following the AI agent ecosystem, you&amp;rsquo;ve probably noticed MCP servers popping up everywhere — giving agents the ability to interact with external tools and services through a standardized protocol.&lt;/p&gt;
&lt;p&gt;Now the &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;Azure DevOps MCP Server is available in Microsoft Foundry&lt;/a&gt;, and this is one of those integrations that makes you think about the practical possibilities.&lt;/p&gt;
&lt;h2 id="whats-actually-happening-here"&gt;What&amp;rsquo;s actually happening here&lt;/h2&gt;
&lt;p&gt;Microsoft already released the Azure DevOps MCP Server as a &lt;a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview"&gt;public preview&lt;/a&gt; — that&amp;rsquo;s the MCP server itself. What&amp;rsquo;s new is the Foundry integration. You can now add the Azure DevOps MCP Server to your Foundry agents directly from the tool catalog.&lt;/p&gt;
&lt;p&gt;For those not familiar with Foundry yet: it&amp;rsquo;s Microsoft&amp;rsquo;s unified platform for building and managing AI-powered applications and agents at scale. Model access, orchestration, evaluation, deployment — all in one place.&lt;/p&gt;
&lt;h2 id="setting-it-up"&gt;Setting it up&lt;/h2&gt;
&lt;p&gt;The setup is surprisingly straightforward:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In your Foundry agent, go to &lt;strong&gt;Add Tools&lt;/strong&gt; &amp;gt; &lt;strong&gt;Catalog&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for &amp;ldquo;Azure DevOps&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Select the Azure DevOps MCP Server (preview) and click &lt;strong&gt;Create&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter your organization name and connect&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&amp;rsquo;s it. Your agent now has access to Azure DevOps tools.&lt;/p&gt;
&lt;h2 id="controlling-what-your-agent-can-access"&gt;Controlling what your agent can access&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the part I appreciate: you&amp;rsquo;re not stuck with an all-or-nothing approach. You can specify which tools are available to your agent. So if you only want it to read work items but not touch pipelines, you can configure that. Principle of least privilege, applied to your AI agents.&lt;/p&gt;
&lt;p&gt;This matters for enterprise scenarios where you don&amp;rsquo;t want an agent accidentally triggering a deployment pipeline because someone asked it to &amp;ldquo;help with the release.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="why-this-is-interesting-for-net-teams"&gt;Why this is interesting for .NET teams&lt;/h2&gt;
&lt;p&gt;Think about what this enables in practice:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sprint planning assistants&lt;/strong&gt; — agents that can pull work items, analyze velocity data, and suggest sprint capacity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code review bots&lt;/strong&gt; — agents that understand your PR context because they can actually read your repos and linked work items&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incident response&lt;/strong&gt; — agents that can create work items, query recent deployments, and correlate bugs with recent changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developer onboarding&lt;/strong&gt; — &amp;ldquo;What should I work on?&amp;rdquo; gets a real answer backed by actual project data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For .NET teams already using Azure DevOps for their CI/CD pipelines and project management, having an AI agent that can actually interact with those systems directly is a significant step toward useful automation (not just chatbot-as-a-service).&lt;/p&gt;
&lt;h2 id="the-bigger-mcp-picture"&gt;The bigger MCP picture&lt;/h2&gt;
&lt;p&gt;This is part of a broader trend: MCP servers are becoming the standard way AI agents interact with the outside world. We&amp;rsquo;re seeing them for GitHub, Azure DevOps, databases, SaaS APIs — and Foundry is becoming the hub where these connections all come together.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re building agents in the .NET ecosystem, MCP is worth paying attention to. The protocol is standardized, the tooling is maturing, and the Foundry integration makes it accessible without having to manually wire up server connections.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;The Azure DevOps MCP Server in Foundry is in preview, so expect it to evolve. But the core workflow is solid: connect, configure tool access, and let your agents work with your DevOps data. If you&amp;rsquo;re already in the Foundry ecosystem, this is a few clicks away. Give it a try and see what workflows you can build.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;full announcement&lt;/a&gt; for the step-by-step setup and more details.&lt;/p&gt;</content:encoded></item></channel></rss>