.NETの最新化GitHub Copilot、
- Scenarios は、.NET Framework から .NET 10 へのアップグレードなど、主要なアップグレード目標のためのエンド ツー エンドのマネージド ワークフローです。 シナリオは、評価、計画、タスクごとの実行というライフサイクル全体を調整します。
- スキル は、EF6 を EF Core に変換したり、WCF を CoreWCF に置き換えたりするなど、特定のアップグレード タスクに重点を置いた機能です。 アップグレード中にエージェントが関連するコードを検出すると、スキルが自動的にアクティブ化されます。
エージェントは、C# プロジェクトと Visual Basic プロジェクトの両方をサポートします。
ヒント
名前を覚える必要はありません。 必要なもの (
シナリオ
シナリオは、エージェントの最上位レベルのアップグレード ワークフローです。 会話を開始すると、エージェントは目標に最適なシナリオを特定し、その手順を順を追って説明します。
| シナリオ | 動作内容 | プロンプトの例 |
|---|---|---|
| .NET バージョンのアップグレード | プロジェクトを以前の.NETバージョンから .NET 8 以降にアップグレードします。 | |
| SDK スタイルの変換 | レガシ プロジェクト ファイルを最新の SDK 形式に変換します。 | "プロジェクトを SDK スタイルに変換する" |
| Newtonsoft.Json のアップグレード | ソリューション全体で Newtonsoft.Json を System.Text.Json に置き換えます。 | "Newtonsoft.Json からのアップグレード" |
| SqlClient のアップグレード | System.Data.SqlClient をMicrosoftにアップグレードします。Data.SqlClient。 | "SqlClient をモダン パッケージに更新する" |
| Azure Functions upgrade | Azure Functionsインプロセスから分離ワーカー モデルにアップグレードします。 | "upgrade my Azure Functions" |
| SK エージェントから Microsoft Agent Framework へのアップグレード。 | "SK エージェントのアップグレード" |
エンド ツー エンドのチュートリアルについては、「 コアの概念」を参照してください。
.NETバージョンのアップグレード
最も一般的なシナリオ。 プロジェクトを古い.NETバリアントから最新のバージョンにアップグレードします。
| 情報源 | ターゲット |
|---|---|
| .NET Framework (任意のバージョン) | .NET 8 以降 |
| .NET Core 1.x – 3.x | .NET 8 以降 |
| .NET 5 以降 | .NET 8 以降 |
エージェントは、依存関係グラフを分析し、NuGet の互換性を確認し、重大な変更を識別し、ソリューションに最適な戦略 (ボトムアップ、トップダウン、または一括) を使用してタスク 計画を作成します。 プロジェクトでフォーマット変換が必要な場合、エージェントはアップグレードの一環として自動的に処理します。
SDK スタイルの変換
レガシ .csproj ファイルと .vbproj ファイルを、ターゲット フレームワークを変更せずに最新の SDK スタイルの形式に変換します。 エージェントは、バージョンのアップグレード中に変換を自動的に処理します。 必要に応じて、このシナリオを個別に実行します。
Newtonsoft.Json のアップグレード
ソリューション全体で Newtonsoft.Json を System.Text.Json に置き換えます。 カスタム コンバーター、 [JsonProperty] 属性、 JObject/JArray 使用法、シリアル化設定を処理します。
SqlClient のアップグレード
System.Data.SqlClient から Microsoft.Data.SqlClient にアップグレードします。
Encrypt=trueの既定の動作変更と接続文字列の違いを処理します。
アップグレードAzure Functions
Program.cs と HostApplicationBuilder を使用して、インプロセス ホスティング モデルから分離ワーカー モデルにAzure Functionsアップグレードします。 Application Insights のアップグレードが含まれます。
Microsoft Agent Framework へのSemantic Kernel
Semantic Kernel エージェント (ChatCompletionAgent、OpenAIAssistantAgent) から Microsoft Agent Framework にアップグレードします。 パッケージと API パターンを更新します。
アップグレード スキル: 一般的
プロジェクトの種類にまたがって適用される汎用アップグレード スキル。
| Skill | 動作内容 |
|---|---|
| SDK スタイルへの変換 | レガシ プロジェクト ファイルを最新の SDK 形式に変換します。 マルチプロジェクト ソリューションにトポロジの順序を使用します。 |
| Autofac を完全に削除し、すべての登録を組み込みの ASP.NET Core依存関係挿入にアップグレードします。 | |
| Autofac を DI コンテナーとして保持しますが、ASP.NET Core統合を最新化します。 | |
| 暗号化名前空間のアップグレード |
System.Security.CryptographyやX509Certificate2などの型のSignedCms名前空間の分割を修正しました。 |
| Newtonsoft から System.Text.Json へのアップグレード |
Newtonsoft.Jsonからの完全なアップグレード。 コンバーター、属性、動的な型、および設定を処理します。 |
| エージェントへのSemantic Kernelのアップグレード | エージェント API Semantic Kernel Microsoft Agents AI Framework にアップグレードします。 |
| MSMQ へのアップグレード。メッセージング | .NET Core の System.Messaging (.NET Framework のみ) から MSMQ.Messaging にアップグレードします。 |
| 中央パッケージ管理への変換 |
Directory.Packages.propsを使用して、プロジェクトごとの NuGet パッケージのバージョン管理を一元化されたパッケージ管理に変換します。 |
| C# バージョンの最新化 | 新しい言語機能 (C# 7.0 から 15) を使用するように C# コードをアップグレードします。
dotnet formatを使用して機械的な変化をバッチ処理し、セマンティック変換に LLM 判定を使用します。 |
| C# null 許容参照のアップグレード | null 許容参照型を有効にし、すべての CS86xx 警告を体系的に解決します。 ロールアウト戦略、注釈ガイダンス、フレームワーク固有の考慮事項について説明します。 |
アップグレード スキル: データ アクセス
Entity Framework、LINQ to SQL、SQL クライアント ライブラリなど、データ アクセス レイヤーをアップグレードするためのスキル。
| Skill | 動作内容 |
|---|---|
| EDMX から Code-First へのアップグレード | EF6 Database-First (.edmx) モデルを EF Core Code-First に変換します。 データベースからエンティティをスキャフォールディングします。 |
| EF DbContext のアップグレード | 依存関係の挿入にDbContextASP.NET Core登録します。 EF6 から EF Core と既存の EF Core パターンの両方を処理します。 |
| EF6 Code-First を EF Core にアップグレードする | EF6 Code-First を EF Core にアップグレードします。 パッケージを交換し、名前空間を更新し、 EntityTypeConfiguration と DbModelBuilderを置き換えます。 |
| Microsoftへのアップグレード。Data.SqlClient |
System.Data.SqlClientからのアップグレード。
Encrypt=trueの既定の変更と接続文字列の違いを処理します。 |
アップグレード スキル: Web と ASP.NET
ASP.NET Framework アプリケーションを ASP.NET Coreにアップグレードするためのスキル。
ASP.NET Framework のアップグレード
| Skill | 動作内容 |
|---|---|
| Framework から Core への ASP.NET アップグレード | コントローラー、ビュー、ミドルウェア、認証、構成など、ASP.NET Framework (MVC/WebAPI) から ASP.NET Coreへの包括的なアップグレード。 |
| ASP.NET ID のアップグレード | id ASP.NET MVC ASP.NET Core ID (IdentityDbContext、UserManager、SignInManager、認証ミドルウェアなど) にアップグレードします。 |
| Global.asax のアップグレード |
Global.asax ライフサイクル イベント (Application_Start、Application_Error) を ASP.NET Core Program.cs およびミドルウェアに変換します。 |
| OWIN をミドルウェアにアップグレードする | OWIN/Katana ミドルウェア (IAppBuilder、OwinMiddleware) を同等の ASP.NET Coreに置き換えます。 |
| OWIN Cookie 認証のアップグレード | OWIN Cookie 認証ミドルウェアを ASP.NET Core Cookie 認証にアップグレードします。 |
| OWIN OAuth を JWT にアップグレードする | OWIN OAuth ベアラー トークン認証を JWT ベアラー認証 ASP.NET Coreにアップグレードします。 |
| OWIN OpenID Connect のアップグレード | OWIN OpenID Connect ミドルウェアを OpenID Connect 認証 ASP.NET Coreアップグレードします。 |
MVC の機能
| Skill | 動作内容 |
|---|---|
| MVC 認証のアップグレード | 認証 ASP.NET MVC ID と認証ミドルウェアを ASP.NET Coreにアップグレードします。 |
| MVC バンドルのアップグレード | バンドル System.Web.Optimization ダイレクト <script>/<link> タグまたはモダン バンドルに変換します。 |
| MVC 構成のアップグレード |
web.config および app.config 設定を ASP.NET Core構成システム (appsettings.json、環境変数) にアップグレードします。 |
| MVC コンテンツ ネゴシエーションのアップグレード | コンテンツ ネゴシエーション パターンとフォーマッタを ASP.NET Coreにアップグレードします。 |
| MVC コントローラーのアップグレード | MVC および WebAPI コントローラーを ASP.NET Coreコントローラー パターンにアップグレードします。 |
| MVC 依存関係挿入のアップグレード | DI コンテナーの登録を ASP.NET Coreの組み込みの依存関係の挿入にアップグレードします。 |
| MVC フィルターのアップグレード | グローバル MVC フィルター (FilterConfig、GlobalFilters) をミドルウェアとフィルター パイプライン ASP.NET Core変換します。 |
| MVC HTTP パイプラインのアップグレード | HTTP モジュールとハンドラーを ASP.NET Coreミドルウェアにアップグレードします。 |
| MVC HttpContext のアップグレード |
System.Web.HttpContext の使用状況を ASP.NET Core HttpContext にアップグレードします。 |
| MVC ログのアップグレード | ログ記録を Microsoft.Extensions.Logging にアップグレードします。 |
| MVC モデル バインドのアップグレード | モデル バインド パターンをモデル バインド ASP.NET Coreアップグレードします。 |
| MVC Razor ビューのアップグレード | Razor ビュー、レイアウト、およびビュー コンポーネントを ASP.NET Core Razor にアップグレードします。 |
| MVC ルーティングのアップグレード |
RouteCollection ルーティングを ASP.NET Coreエンドポイント ルーティング (MapControllerRoute、属性ルーティング) に変換します。 |
| MVC セッション状態のアップグレード | セッション状態を分散セッション ASP.NET Coreアップグレードします。 |
| MVC 静的ファイルのアップグレード | 静的ファイル処理を ASP.NET Coreの静的ファイル ミドルウェアにアップグレードします。 |
| MVC System.Web アダプターのアップグレード | System.Web アダプターを使用して、ASP.NET Framework から ASP.NET Coreへの増分アップグレードを行います。 |
| MVC 検証のアップグレード | 検証属性とパターンをアップグレードして検証を ASP.NET Coreします。 |
WCF
| Skill | 動作内容 |
|---|---|
| WCF から CoreWCF へのアップグレード | .NET 6 以降の場合、サーバー側の WCF サービスを CoreWCF にアップグレードします。 ホスティング、バインディング、動作拡張、非同期コントラクトを変換します。 |
アップグレード スキル: クラウドとAzure
| Skill | 動作内容 |
|---|---|
| スタートアップAzure Functionsアップグレード | Azure Functionsインプロセス Startup クラスから、Program.cs を使用して分離ワーカー モデルにアップグレードします。 |
IHostApplicationBuilder を使用して、v2 ホスティング パターンにAzure Functionsをアップグレードします。 |
|
| アップグレード Azure Key Vault | レガシ Azure Key Vault SDK をモダン Azure.Security.KeyVault ライブラリにアップグレードします。 |
| アップグレード Azure Service Bus | レガシ Azure Service Bus SDK をモダン Azure.Messaging.ServiceBus ライブラリにアップグレードします。 |
| アップグレード Azure Storage | レガシ Azure Storage SDK をモダン Azure.Storage ライブラリにアップグレードします。 |
アップグレード スキル: ライブラリ
| Skill | 動作内容 |
|---|---|
| ADAL から MSAL へのアップグレード | Azure Active Directory認証ライブラリ (ADAL) を Microsoft Authentication Library (MSAL) にアップグレードします。 |
| SignalR ASP.NET ASP.NET Core SignalR にアップグレードします。 | |
| Bond インターフェイスのアップグレード | Bond シリアル化Microsoft最新の代替手段にアップグレードします。 |
| Data EDM から OData へのアップグレード |
Data.Edm型を OData ライブラリにアップグレードします。 |
| データ OData から OData Core へのアップグレード |
Microsoft.Data.OData を Microsoft.OData.Core にアップグレードします。 |
| Data Services クライアントのアップグレード | WCF Data Services クライアントを最新の OData クライアントにアップグレードします。 |
| PowerShell SDK のアップグレード |
Microsoft.PowerShell.SDK パッケージを使用して、PowerShell モジュールを Windows PowerShell 5.1 から PowerShell 7 以降にアップグレードします。 |
| SPA サービスを SPA プロキシにアップグレードする |
Microsoft.AspNetCore.SpaServices を SPA プロキシ ホスティング モデルにアップグレードします。 |
| System.Spatial のアップグレード |
Microsoft.Spatial と System.Spatial を最新の空間代替にアップグレードします。 |
| WebAPI CORS のアップグレード |
System.Web.Http.Cors を CORS ミドルウェア ASP.NET Coreアップグレードします。 |
| WebAPI OData のアップグレード | WebAPI OData を ASP.NET Core OData にアップグレードします。 |
スキルのアクティブ化
アップグレード セッションの展開に合わせて、エージェントはスキルを段階的に読み込みます。
| いつ | 何が起きるか |
|---|---|
| セッションの開始 | エージェントは、一致するシナリオと、コードベースにすぐに関連するすべてのスキルを読み込みます。 |
| 実行中 | エージェントはタスクを通じて動作し、EDMX ファイル、WCF サービス、OWIN ミドルウェアなどの特定のアップグレード パターンが発生したときに、特別なスキルをオンデマンドで読み込みます。 |
| 要求時 | 任意のスキルをいつでも使用するようにエージェントに依頼できます。 たとえば、「WCF を CoreWCF にアップグレードする」や「EF6 アップグレード スキルを使用する」などです。 |
スキルの読み込みを管理する必要はありません。 エージェントによって自動的に処理されます。 必要な内容を説明するだけです。
独自のスキルを作成する
内部フレームワークのアップグレード、コーディング規則、カスタム アップグレード ワークフローなど、コードベースに固有のエージェント パターンを教えるカスタム スキルを作成します。
リポジトリ (.github/skills/) またはユーザー プロファイル (%UserProfile%/.copilot/skills/) にスキルを配置し、エージェントが自動的にスキルを選択します。
カスタム スキルの作成の詳細については、「カスタム アップグレード手順の適用」を参照してください。
関連するコンテンツ
.NET