この記事は自動翻訳されました。原文はこちらをご覧ください。
レガシーな.NET Frameworkアプリをモダンな.NETに移行することは、誰もがやるべきだと知っているのに誰も始めたがらないタスクの一つです。「ターゲットフレームワークを変えるだけ」では済みません。消えたAPI、もう存在しないパッケージ、まったく異なる動作をするホスティングモデル、そして何をコンテナ化し、何を書き直し、何をそのままにするかについての無数の小さな決断があります。
Jeffrey FritzがGitHub Copilotのモダナイゼーション評価の詳細な解説を公開しましたが、正直なところ、.NET向けで見た中で最高の移行ツーリングです。コード生成のためではありません — それは今や当たり前です。生成される評価ドキュメントのためです。
単なるコード提案エンジンではない
VS Code拡張機能は評価 → 計画 → 実行モデルに従います。評価フェーズはコードベース全体を分析し、すべてをキャプチャする構造化ドキュメントを生成します:何を変更する必要があるか、どのAzureリソースをプロビジョニングするか、どのデプロイモデルを使用するか。その後のすべて — Infrastructure as Code、コンテナ化、デプロイマニフェスト — は評価結果から流れます。
評価はプロジェクトの.github/modernize/assessment/に保存されます。各実行は独立したレポートを生成するため、履歴が蓄積され、Issueを修正するにつれて移行の態勢がどう進化しているか追跡できます。
2つの始め方
推奨評価 — 素早い方法。キュレーションされたドメイン(Java/.NETアップグレード、Cloud Readiness、セキュリティ)から選び、設定をいじらずに意味のある結果を得ます。アプリがどこにいるかの最初の確認に最適です。
カスタム評価 — ターゲットを絞った方法。何を分析するか正確に設定:ターゲットコンピュート(App Service、AKS、Container Apps)、ターゲットOS、コンテナ化分析。複数のAzureターゲットを選んで移行アプローチを並べて比較できます。
その比較ビューは本当に便利です。App Serviceで必須Issueが3つのアプリが、AKSでは7つかもしれません。両方を見ることで、移行パスにコミットする前にホスティングの決定を導けます。
Issueの内訳はアクション可能
各Issueには重大度レベルが付いています:
- 必須 — 修正しなければ移行が失敗
- 潜在的 — 移行に影響する可能性あり、人間の判断が必要
- オプション — 推奨される改善、移行をブロックしない
そして各Issueは影響を受けるファイルと行番号にリンクし、何が問題でなぜターゲットプラットフォームにとって重要なのかの詳細な説明を提供し、具体的な修正手順を示し(「これを直して」だけでなく)、公式ドキュメントへのリンクを含みます。
個々のIssueを開発者に渡すことができ、彼らにはアクションに必要なすべてが揃っています。これが「問題がある」と伝えるツールと「解決方法」を伝えるツールの違いです。
カバーされるアップグレードパス
.NET向け具体的に:
- .NET Framework → .NET 10
- ASP.NET → ASP.NET Core
各アップグレードパスには、どのAPIが削除されたか、どのパターンに直接の等価物がないか、どのセキュリティ問題に注意が必要かを知る検出ルールがあります。
複数のアプリを管理するチーム向けには、マルチレポのバッチ評価をサポートするCLIもあります — すべてのリポをクローンし、すべてを評価し、アプリごとのレポートと集約されたポートフォリオビューを取得できます。
私の見解
レガシーな.NET Frameworkアプリを抱えているなら(そして正直に言って、ほとんどのエンタープライズチームがそうです)、これが始めるための最適なツールです。評価ドキュメントだけでも時間の価値があります — 漠然とした「モダナイズすべき」を、明確な前進の道筋を持つ具体的で優先順位付けされた作業項目リストに変えてくれます。
コラボレーティブなワークフローも賢いです:評価をエクスポートし、チームと共有し、再実行せずにインポート。意思決定者がツールを実行する人ではないアーキテクチャレビュー?カバーされています。
まとめ
GitHub Copilotのモダナイゼーション評価は、.NETの移行を怖い未定義のプロジェクトから構造化された追跡可能なプロセスに変えます。推奨評価から始めて現在地を確認し、カスタム評価でAzureターゲットを比較して移行計画を構築しましょう。
完全なウォークスルーを読み、VS Code拡張機能を入手して自分のコードベースで試してみてください。
