シナリオとスキルリファレンス

.NETの最新化GitHub Copilot、scenariosおよびスキル

  • Scenarios は、.NET Framework から .NET 10 へのアップグレードなど、主要なアップグレード目標のためのエンド ツー エンドのマネージド ワークフローです。 シナリオは、評価、計画、タスクごとの実行というライフサイクル全体を調整します。
  • スキル は、EF6 を EF Core に変換したり、WCF を CoreWCF に置き換えたりするなど、特定のアップグレード タスクに重点を置いた機能です。 アップグレード中にエージェントが関連するコードを検出すると、スキルが自動的にアクティブ化されます。

エージェントは、C# プロジェクトと Visual Basic プロジェクトの両方をサポートします。

ヒント

名前を覚える必要はありません。 必要なもの (".NET 10""upgrade my EF6 code""replace Newtonsoft.Json") について説明し、エージェントが適切なシナリオとスキルを自動的に読み込みます。 また、次の質問も できます。

シナリオ

シナリオは、エージェントの最上位レベルのアップグレード ワークフローです。 会話を開始すると、エージェントは目標に最適なシナリオを特定し、その手順を順を追って説明します。

シナリオ 動作内容 プロンプトの例
.NET バージョンのアップグレード プロジェクトを以前の.NETバージョンから .NET 8 以降にアップグレードします。 ".NET 10"
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"
Semantic Kernel を Agentsします> 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.JsonSystem.Text.Json に置き換えます。 カスタム コンバーター、 [JsonProperty] 属性、 JObject/JArray 使用法、シリアル化設定を処理します。

SqlClient のアップグレード

System.Data.SqlClient から Microsoft.Data.SqlClient にアップグレードします。 Encrypt=trueの既定の動作変更と接続文字列の違いを処理します。

アップグレードAzure Functions

Program.csHostApplicationBuilder を使用して、インプロセス ホスティング モデルから分離ワーカー モデルにAzure Functionsアップグレードします。 Application Insights のアップグレードが含まれます。

Microsoft Agent Framework へのSemantic Kernel

Semantic Kernel エージェント (ChatCompletionAgentOpenAIAssistantAgent) から Microsoft Agent Framework にアップグレードします。 パッケージと API パターンを更新します。

アップグレード スキル: 一般的

プロジェクトの種類にまたがって適用される汎用アップグレード スキル。

Skill 動作内容
SDK スタイルへの変換 レガシ プロジェクト ファイルを最新の SDK 形式に変換します。 マルチプロジェクト ソリューションにトポロジの順序を使用します。
.NET DI Autofac を完全に削除し、すべての登録を組み込みの ASP.NET Core依存関係挿入にアップグレードします。
.NET Autofac を DI コンテナーとして保持しますが、ASP.NET Core統合を最新化します。
暗号化名前空間のアップグレード System.Security.CryptographyX509Certificate2などの型の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 にアップグレードします。 パッケージを交換し、名前空間を更新し、 EntityTypeConfigurationDbModelBuilderを置き換えます。
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 (IdentityDbContextUserManagerSignInManager、認証ミドルウェアなど) にアップグレードします。
Global.asax のアップグレード Global.asax ライフサイクル イベント (Application_StartApplication_Error) を ASP.NET Core Program.cs およびミドルウェアに変換します。
OWIN をミドルウェアにアップグレードする OWIN/Katana ミドルウェア (IAppBuilderOwinMiddleware) を同等の 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 フィルター (FilterConfigGlobalFilters) をミドルウェアとフィルター パイプライン 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 を使用して分離ワーカー モデルにアップグレードします。
v2 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 SignalR ASP.NET ASP.NET Core SignalR にアップグレードします。
Bond インターフェイスのアップグレード Bond シリアル化Microsoft最新の代替手段にアップグレードします。
Data EDM から OData へのアップグレード Data.Edm型を OData ライブラリにアップグレードします。
データ OData から OData Core へのアップグレード Microsoft.Data.ODataMicrosoft.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.SpatialSystem.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/) にスキルを配置し、エージェントが自動的にスキルを選択します。

カスタム スキルの作成の詳細については、「カスタム アップグレード手順の適用」を参照してください。