<?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/ja/tags/modernization/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ja</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/ja/tags/modernization/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker Sandboxで、Copilotエージェントがマシンをリスクにさらさずにコードをリファクタリングできるようになった</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker SandboxはGitHub Copilotエージェントにセキュアなマイクロ VMを提供し、許可プロンプトなし、ホストへのリスクなしで自由にリファクタリングできる環境を実現します。大規模な.NETモダナイゼーションにとって、これがなぜゲームチェンジャーなのかを解説します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Copilotのエージェントモードを小さな編集以上のことに使ったことがあるなら、あの煩わしさは知っているはずです。ファイルへの書き込みのたびに、ターミナルコマンドのたびに、また許可プロンプト。これを50プロジェクトで想像してみてください。楽しくないですよね。&lt;/p&gt;
&lt;p&gt;Azureチームが&lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;GitHub CopilotエージェントのためのDocker Sandbox&lt;/a&gt;に関する記事を公開しました。正直に言って、これはエージェンティックツーリングで見た中で最も実用的な改善の一つです。マイクロVMを使ってCopilotに完全に隔離された環境を提供し、パッケージのインストール、ビルドの実行、テストの実行まで、ホストシステムに一切触れずに自由に作業できます。&lt;/p&gt;
&lt;h2 id="docker-sandboxが実際に提供するもの"&gt;Docker Sandboxが実際に提供するもの&lt;/h2&gt;
&lt;p&gt;コアのアイデアはシンプルです：完全なLinux環境を持つ軽量なマイクロVMを起動し、ワークスペースをその中に同期させ、Copilotエージェントを内部で自由に動かす。完了したら変更が同期されて戻ってくる。&lt;/p&gt;
&lt;p&gt;単なる「コンテナ内で実行する」以上のものにしているポイントはこちらです：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;双方向ワークスペース同期&lt;/strong&gt;で絶対パスが保持されます。プロジェクト構造はサンドボックス内でも同一に見えます。パス関連のビルドエラーはありません。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;プライベートDockerデーモン&lt;/strong&gt;がマイクロVM内で稼働。エージェントはホストのDockerソケットをマウントすることなくコンテナのビルドと実行が可能です。セキュリティ面で大きな進歩です。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/HTTPSフィルタリングプロキシ&lt;/strong&gt;がエージェントのネットワークアクセスを制御。どのレジストリとエンドポイントを許可するかはあなたが決められます。サンドボックス内の悪意ある&lt;code&gt;npm install&lt;/code&gt;によるサプライチェーン攻撃？ブロックされます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YOLOモード&lt;/strong&gt; — はい、本当にそう呼ばれています。エージェントは許可プロンプトなしで実行されます。なぜなら、文字通りホストを壊すことができないからです。すべての破壊的アクションが封じ込められています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="net開発者が注目すべき理由"&gt;.NET開発者が注目すべき理由&lt;/h2&gt;
&lt;p&gt;今まさに多くのチームが直面しているモダナイゼーション作業を考えてみてください。30プロジェクトを含む.NET Frameworkソリューションがあり、.NET 9に移行する必要がある。数百のファイル変更が必要です — プロジェクトファイル、名前空間の更新、APIの置き換え、NuGetの移行。&lt;/p&gt;
&lt;p&gt;Docker Sandboxを使えば、CopilotエージェントをプロジェクトにポイントしてマイクロVM内で自由にリファクタリングさせ、&lt;code&gt;dotnet build&lt;/code&gt;と&lt;code&gt;dotnet test&lt;/code&gt;で検証し、実際に動作する変更だけを受け入れることができます。実験中にローカル開発環境を誤って壊してしまうリスクはありません。&lt;/p&gt;
&lt;p&gt;記事では&lt;strong&gt;並列エージェントのフリート&lt;/strong&gt;の運用も説明されています — それぞれが独自のサンドボックスで、異なるプロジェクトに同時に取り組みます。大規模な.NETソリューションやマイクロサービスアーキテクチャにとって、これは膨大な時間の節約になります。サービスごとに1エージェント、すべて隔離して実行、すべて独立して検証。&lt;/p&gt;
&lt;h2 id="セキュリティの観点が重要"&gt;セキュリティの観点が重要&lt;/h2&gt;
&lt;p&gt;多くの人が見落としているポイントがあります：AIエージェントに任意のコマンドの実行を許可するということは、マシン全体を信頼して預けるということです。Docker Sandboxはそのモデルを逆転させます。エージェントは使い捨て環境内で完全な自律性を得ます。ネットワークプロキシが承認されたソースからのみダウンロードできることを保証します。ホストのファイルシステム、Dockerデーモン、認証情報は手つかずのままです。&lt;/p&gt;
&lt;p&gt;コンプライアンス要件を持つチーム — そしてそれはほとんどのエンタープライズ.NET企業に当てはまります — にとって、これは「エージェンティックAIは使えない」と「安全に導入できる」の違いです。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Docker Sandboxはエージェンティックコーディングの根本的なジレンマを解決します：エージェントは有用であるために自由が必要ですが、ホストマシンでの自由は危険です。マイクロVMは両方を実現します。大規模な.NETリファクタリングやモダナイゼーションを計画しているなら、今すぐセットアップする価値があります。Copilotのコードインテリジェンスとセキュアな実行環境の組み合わせは、まさにプロダクションチームが待ち望んでいたものです。&lt;/p&gt;</content:encoded></item><item><title>GitHub Copilotのモダナイゼーション評価は、まだ使っていない最高の移行ツール</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/</guid><description>GitHub Copilotのモダナイゼーション拡張機能は、コード変更を提案するだけでなく、アクション可能なIssue、Azureターゲット比較、コラボレーティブなワークフローを備えた完全な移行評価を生成します。評価ドキュメントがすべての鍵である理由をお伝えします。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/dotnet-modernization-assessment-github-copilot/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;レガシーな.NET Frameworkアプリをモダンな.NETに移行することは、誰もがやるべきだと知っているのに誰も始めたがらないタスクの一つです。「ターゲットフレームワークを変えるだけ」では済みません。消えたAPI、もう存在しないパッケージ、まったく異なる動作をするホスティングモデル、そして何をコンテナ化し、何を書き直し、何をそのままにするかについての無数の小さな決断があります。&lt;/p&gt;
&lt;p&gt;Jeffrey Fritzが&lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;GitHub Copilotのモダナイゼーション評価の詳細な解説&lt;/a&gt;を公開しましたが、正直なところ、.NET向けで見た中で最高の移行ツーリングです。コード生成のためではありません — それは今や当たり前です。生成される評価ドキュメントのためです。&lt;/p&gt;
&lt;h2 id="単なるコード提案エンジンではない"&gt;単なるコード提案エンジンではない&lt;/h2&gt;
&lt;p&gt;VS Code拡張機能は&lt;strong&gt;評価 → 計画 → 実行&lt;/strong&gt;モデルに従います。評価フェーズはコードベース全体を分析し、すべてをキャプチャする構造化ドキュメントを生成します：何を変更する必要があるか、どのAzureリソースをプロビジョニングするか、どのデプロイモデルを使用するか。その後のすべて — Infrastructure as Code、コンテナ化、デプロイマニフェスト — は評価結果から流れます。&lt;/p&gt;
&lt;p&gt;評価はプロジェクトの&lt;code&gt;.github/modernize/assessment/&lt;/code&gt;に保存されます。各実行は独立したレポートを生成するため、履歴が蓄積され、Issueを修正するにつれて移行の態勢がどう進化しているか追跡できます。&lt;/p&gt;
&lt;h2 id="2つの始め方"&gt;2つの始め方&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;推奨評価&lt;/strong&gt; — 素早い方法。キュレーションされたドメイン（Java/.NETアップグレード、Cloud Readiness、セキュリティ）から選び、設定をいじらずに意味のある結果を得ます。アプリがどこにいるかの最初の確認に最適です。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;カスタム評価&lt;/strong&gt; — ターゲットを絞った方法。何を分析するか正確に設定：ターゲットコンピュート（App Service、AKS、Container Apps）、ターゲットOS、コンテナ化分析。複数のAzureターゲットを選んで移行アプローチを並べて比較できます。&lt;/p&gt;
&lt;p&gt;その比較ビューは本当に便利です。App Serviceで必須Issueが3つのアプリが、AKSでは7つかもしれません。両方を見ることで、移行パスにコミットする前にホスティングの決定を導けます。&lt;/p&gt;
&lt;h2 id="issueの内訳はアクション可能"&gt;Issueの内訳はアクション可能&lt;/h2&gt;
&lt;p&gt;各Issueには重大度レベルが付いています：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;必須&lt;/strong&gt; — 修正しなければ移行が失敗&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;潜在的&lt;/strong&gt; — 移行に影響する可能性あり、人間の判断が必要&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;オプション&lt;/strong&gt; — 推奨される改善、移行をブロックしない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そして各Issueは影響を受けるファイルと行番号にリンクし、何が問題でなぜターゲットプラットフォームにとって重要なのかの詳細な説明を提供し、具体的な修正手順を示し（「これを直して」だけでなく）、公式ドキュメントへのリンクを含みます。&lt;/p&gt;
&lt;p&gt;個々のIssueを開発者に渡すことができ、彼らにはアクションに必要なすべてが揃っています。これが「問題がある」と伝えるツールと「解決方法」を伝えるツールの違いです。&lt;/p&gt;
&lt;h2 id="カバーされるアップグレードパス"&gt;カバーされるアップグレードパス&lt;/h2&gt;
&lt;p&gt;.NET向け具体的に：&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;各アップグレードパスには、どのAPIが削除されたか、どのパターンに直接の等価物がないか、どのセキュリティ問題に注意が必要かを知る検出ルールがあります。&lt;/p&gt;
&lt;p&gt;複数のアプリを管理するチーム向けには、マルチレポのバッチ評価をサポートするCLIもあります — すべてのリポをクローンし、すべてを評価し、アプリごとのレポートと集約されたポートフォリオビューを取得できます。&lt;/p&gt;
&lt;h2 id="私の見解"&gt;私の見解&lt;/h2&gt;
&lt;p&gt;レガシーな.NET Frameworkアプリを抱えているなら（そして正直に言って、ほとんどのエンタープライズチームがそうです）、これが始めるための&lt;em&gt;最適な&lt;/em&gt;ツールです。評価ドキュメントだけでも時間の価値があります — 漠然とした「モダナイズすべき」を、明確な前進の道筋を持つ具体的で優先順位付けされた作業項目リストに変えてくれます。&lt;/p&gt;
&lt;p&gt;コラボレーティブなワークフローも賢いです：評価をエクスポートし、チームと共有し、再実行せずにインポート。意思決定者がツールを実行する人ではないアーキテクチャレビュー？カバーされています。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;GitHub Copilotのモダナイゼーション評価は、.NETの移行を怖い未定義のプロジェクトから構造化された追跡可能なプロセスに変えます。推奨評価から始めて現在地を確認し、カスタム評価でAzureターゲットを比較して移行計画を構築しましょう。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/your-migrations-source-of-truth-the-modernization-assessment/"&gt;完全なウォークスルー&lt;/a&gt;を読み、&lt;a href="https://aka.ms/ghcp-appmod/vscode-ext"&gt;VS Code拡張機能&lt;/a&gt;を入手して自分のコードベースで試してみてください。&lt;/p&gt;</content:encoded></item></channel></rss>