<?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>Modernization | The .NET Blog</title><link>https://thedotnetblog.com/tags/modernization/</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>Fri, 17 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/modernization/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker Sandbox Lets Copilot Agents Refactor Your Code Without Risking Your Machine</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox gives GitHub Copilot agents a secure microVM to run wild with refactoring — no permission prompts, no risk to your host. Here's why that changes everything for large-scale .NET modernization.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;ve used Copilot&amp;rsquo;s agent mode for anything beyond small edits, you know the pain. Every file write, every terminal command — another permission prompt. Now imagine running that across 50 projects. Not fun.&lt;/p&gt;
&lt;p&gt;The Azure team just dropped a post about &lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;Docker Sandbox for GitHub Copilot agents&lt;/a&gt;, and honestly, this is one of the most practical agentic tooling improvements I&amp;rsquo;ve seen. It uses microVMs to give Copilot a fully isolated environment where it can go wild — install packages, run builds, execute tests — without touching your host system.&lt;/p&gt;
&lt;h2 id="what-docker-sandbox-actually-gives-you"&gt;What Docker Sandbox actually gives you&lt;/h2&gt;
&lt;p&gt;The core idea is simple: spin up a lightweight microVM with a full Linux environment, sync your workspace into it, and let the Copilot agent operate freely inside. When it&amp;rsquo;s done, changes sync back.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what makes it more than just &amp;ldquo;run stuff in a container&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bidirectional workspace sync&lt;/strong&gt; that preserves absolute paths. Your project structure looks identical inside the sandbox. No path-related build failures.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private Docker daemon&lt;/strong&gt; running inside the microVM. The agent can build and run containers without ever mounting your host&amp;rsquo;s Docker socket. That&amp;rsquo;s a big deal for security.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/HTTPS filtering proxies&lt;/strong&gt; that control what the agent can reach on the network. You decide which registries and endpoints are allowed. Supply chain attacks from a rogue &lt;code&gt;npm install&lt;/code&gt; inside the sandbox? Blocked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YOLO mode&lt;/strong&gt; — yes, that&amp;rsquo;s what they call it. The agent runs without permission prompts because it literally cannot damage your host. Every destructive action is contained.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="why-net-developers-should-care"&gt;Why .NET developers should care&lt;/h2&gt;
&lt;p&gt;Think about the modernization work so many teams are facing right now. You have a .NET Framework solution with 30 projects, and you need to move it to .NET 9. That&amp;rsquo;s hundreds of file changes — project files, namespace updates, API replacements, NuGet migrations.&lt;/p&gt;
&lt;p&gt;With Docker Sandbox, you can point a Copilot agent at a project, let it refactor freely inside the microVM, run &lt;code&gt;dotnet build&lt;/code&gt; and &lt;code&gt;dotnet test&lt;/code&gt; to validate, and only accept the changes that actually work. No risk of it accidentally nuking your local dev environment while experimenting.&lt;/p&gt;
&lt;p&gt;The post also describes running a &lt;strong&gt;fleet of parallel agents&lt;/strong&gt; — each in its own sandbox — tackling different projects simultaneously. For large .NET solutions or microservice architectures, that&amp;rsquo;s a massive time saver. One agent per service, all running isolated, all validated independently.&lt;/p&gt;
&lt;h2 id="the-security-angle-matters"&gt;The security angle matters&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the thing most people skip over: when you let an AI agent execute arbitrary commands, you&amp;rsquo;re trusting it with your entire machine. Docker Sandbox flips that model. The agent gets full autonomy inside a throwaway environment. The network proxy ensures it can only pull from approved sources. Your host filesystem, Docker daemon, and credentials stay untouched.&lt;/p&gt;
&lt;p&gt;For teams with compliance requirements — and that&amp;rsquo;s most enterprise .NET shops — this is the difference between &amp;ldquo;we can&amp;rsquo;t use agentic AI&amp;rdquo; and &amp;ldquo;we can adopt it safely.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="takeaway"&gt;Takeaway&lt;/h2&gt;
&lt;p&gt;Docker Sandbox solves the fundamental tension of agentic coding: agents need freedom to be useful, but freedom on your host machine is dangerous. MicroVMs give you both. If you&amp;rsquo;re planning any large-scale .NET refactoring or modernization, this is worth setting up now. The combination of Copilot&amp;rsquo;s code intelligence with a safe execution environment is exactly what production teams have been waiting for.&lt;/p&gt;</content:encoded></item><item><title>GitHub Copilot's Modernization Assessment Is the Best Migration Tool You're Not Using Yet</title><link>https://thedotnetblog.com/news/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/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</guid><description>GitHub Copilot's modernization extension doesn't just suggest code changes — it produces a full migration assessment with actionable issues, Azure target comparisons, and a collaborative workflow. Here's why the assessment document is the key to everything.</description><content:encoded>&lt;p&gt;Migrating a legacy .NET Framework app to modern .NET is one of those tasks everyone knows they should do but nobody wants to start. It&amp;rsquo;s never just &amp;ldquo;change the target framework.&amp;rdquo; It&amp;rsquo;s APIs that disappeared, packages that don&amp;rsquo;t exist anymore, hosting models that work completely differently, and a million small decisions about what to containerize, what to rewrite, and what to leave alone.&lt;/p&gt;
&lt;p&gt;Jeffrey Fritz just published a &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;deep dive into GitHub Copilot&amp;rsquo;s modernization assessment&lt;/a&gt;, and honestly? This is the best migration tooling I&amp;rsquo;ve seen for .NET. Not because of the code generation — that&amp;rsquo;s table stakes now. Because of the assessment document it produces.&lt;/p&gt;
&lt;h2 id="its-not-just-a-code-suggestion-engine"&gt;It&amp;rsquo;s not just a code suggestion engine&lt;/h2&gt;
&lt;p&gt;The VS Code extension follows an &lt;strong&gt;Assess → Plan → Execute&lt;/strong&gt; model. The assessment phase analyzes your entire codebase and produces a structured document that captures everything: what needs to change, what Azure resources to provision, what deployment model to use. Everything downstream — infrastructure-as-code, containerization, deployment manifests — flows from what the assessment finds.&lt;/p&gt;
&lt;p&gt;The assessment is stored under &lt;code&gt;.github/modernize/assessment/&lt;/code&gt; in your project. Each run produces an independent report, so you build up a history and can track how your migration posture evolves as you fix issues.&lt;/p&gt;
&lt;h2 id="two-ways-to-start"&gt;Two ways to start&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Recommended Assessment&lt;/strong&gt; — the fast path. Pick from curated domains (Java/.NET Upgrade, Cloud Readiness, Security) and get meaningful results without touching configuration. Great for a first look at where your app stands.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custom Assessment&lt;/strong&gt; — the targeted path. Configure exactly what to analyze: target compute (App Service, AKS, Container Apps), target OS, containerization analysis. Pick multiple Azure targets to compare migration approaches side-by-side.&lt;/p&gt;
&lt;p&gt;That comparison view is genuinely useful. An app with 3 mandatory issues for App Service might have 7 for AKS. Seeing both helps drive the hosting decision before you commit to a migration path.&lt;/p&gt;
&lt;h2 id="the-issue-breakdown-is-actionable"&gt;The issue breakdown is actionable&lt;/h2&gt;
&lt;p&gt;Each issue comes with a criticality level:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mandatory&lt;/strong&gt; — must fix or migration fails&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Potential&lt;/strong&gt; — might impact migration, needs human judgment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional&lt;/strong&gt; — recommended improvements, won&amp;rsquo;t block migration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And each issue links to affected files and line numbers, provides a detailed description of what&amp;rsquo;s wrong and why it matters for your target platform, gives concrete remediation steps (not just &amp;ldquo;fix this&amp;rdquo;), and includes links to official documentation.&lt;/p&gt;
&lt;p&gt;You can hand individual issues to developers and they have everything they need to act. That&amp;rsquo;s the difference between a tool that tells you &amp;ldquo;there&amp;rsquo;s a problem&amp;rdquo; and one that tells you how to solve it.&lt;/p&gt;
&lt;h2 id="the-upgrade-paths-covered"&gt;The upgrade paths covered&lt;/h2&gt;
&lt;p&gt;For .NET specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET Framework → .NET 10&lt;/li&gt;
&lt;li&gt;ASP.NET → ASP.NET Core&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each upgrade path has detection rules that know which APIs were removed, which patterns have no direct equivalent, and what security issues need attention.&lt;/p&gt;
&lt;p&gt;For teams managing multiple apps, there&amp;rsquo;s also a CLI that supports multi-repo batch assessments — clone all repos, assess them all, get per-app reports plus an aggregated portfolio view.&lt;/p&gt;
&lt;h2 id="my-take"&gt;My take&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re sitting on legacy .NET Framework apps (and let&amp;rsquo;s be real, most enterprise teams are), this is &lt;em&gt;the&lt;/em&gt; tool to start with. The assessment document alone is worth the time — it turns a vague &amp;ldquo;we should modernize&amp;rdquo; into a concrete, prioritized list of work items with clear paths forward.&lt;/p&gt;
&lt;p&gt;The collaborative workflow is smart too: export assessments, share with your team, import them without re-running. Architecture reviews where the decision-makers aren&amp;rsquo;t the ones running the tools? Covered.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;GitHub Copilot&amp;rsquo;s modernization assessment transforms .NET migration from a scary, undefined project into a structured, trackable process. Start with a recommended assessment to see where you stand, then use custom assessments to compare Azure targets and build your migration plan.&lt;/p&gt;
&lt;p&gt;Read the &lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;full walkthrough&lt;/a&gt; and grab the &lt;a href="https://aka.ms/ghcp-appmod/vscode-ext"&gt;VS Code extension&lt;/a&gt; to try it on your own codebase.&lt;/p&gt;</content:encoded></item></channel></rss>