Amazon Web Services ブログ

.NET 用の Amazon Q Developer トランスフォーメーション機能の発表 (プレビュー)

2002 年に導入された .NET Framework は Windows でのみ動作し、現在もサポートされていますが、現在も活発に開発されていません。ただし、2016 年にリリースされたクロスプラットフォーム .NET はオープンソースで、Linux 上で動作し、軽量でパフォーマンスも高くなっています。定期的に更新され、毎年新機能が追加され、パフォーマンスが向上しています。.NET アプリケーションを .NET Framework からクロスプラットフォームの .NET に移植することで、Windows から Linux に移行できます。その結果、.NET プラットフォームの最新のイノベーションを活用できるだけでなく、Microsoft のライセンス費用も削減できます。

Amazon Web Services (AWS) では、Porting Assistant for .NETAWS Toolkit for .NET RefactoringAWS Microservice Extractor for .NET などのツールを使用して、.NET アプリケーションを Windows から Linux に移植および最新化できるよう支援してきました。

12 月3 日、.NET、メインフレーム、VMware ワークロード向けの新しい Amazon Q Developer トランスフォーメーション機能のパブリックプレビューを発表しました。

この投稿では、Amazon Q Developer .NET トランスフォーメーション機能を紹介します。これは、統合開発環境 (IDE) 内で .NET Framework アプリケーションをクロスプラットフォーム .NET に移植するための、生成 AI を活用した新しいエクスペリエンスです。

Amazon Q Developer Transform for .NET は、自動的にコードベースを分析し、トランスフォーメーションプランを生成し、トランスフォーメーションタスクを実行します。これらのタスクには、NuGet パッケージと API のアップグレードと置き換え、非推奨で非効率的なコードコンポーネントの書き換え、クロスプラットフォームの .NET への移植が含まれます。

実際の動作を見てみましょう。

.NET Framework アプリケーションをクロスプラットフォームの .NET に移植する
このチュートリアルでは Visual Studio を使用しているのは、Amazon Q Developer Transform for .NET が Visual Studio 拡張機能として利用できるためです。最新バージョンの AWS Toolkit with Amazon Q をインストールし、組織から提供された AWS IAM アイデンティティセンターの認証情報を使用してサインインします。

IAM アイデンティティセンターに接続して AWS Toolkit with Amazon Q を始める

サポートされているクロスプラットフォーム .NET の最新長期サポート (LTS) バージョン (現在は .NET 8) に移植する必要がある .NET Framework ソリューションを開きます。Solution Explorer では、変換オプションをソリューション全体と個々のプロジェクトの両方のコンテキストメニュー項目として使用できます。アプリケーションの規模と複雑さに応じて、アプリケーション全体を一度に変換することも、アプリケーション内のプロジェクトを段階的に変換することもできます。このウォークスルーでは、ソリューションのプロジェクトの 1 つのトランスフォーメーションを紹介します。

いずれかのプロジェクトのコンテキストメニューを選択し、次に [Amazon Q Developer での移植プロジェクト] を選択します。

Solution Explorer のコンテキストメニューで [Amazon Q Developer での移植プロジェクト] を選択

これにより、変換する追加のプロジェクトを選択し、ターゲットの .NET バージョンを選択するダイアログが開きます。.NET 8 を選択し、[確認] を選択してトランスフォーメーションを続行します。

[Amazon Q Developer での移植プロジェクト] のポップアップ

ステータスが [コードトランスフォーメーション計画] ウィンドウに、進捗状況が [Amazon Q Developer コードトランスフォーメーションハブ] ウィンドウに表示されます。

変換するプロジェクトを 1 つだけ選択しましたが、依存するプロジェクトはすべて Amazon Q Developer によって変換されます。選択したプロジェクトとそれに依存するプロジェクトが組み合わされて、分解可能なビルド可能なユニットが形成されます。これは、トランスフォーメーション後のコードベースが正常にビルドされた状態であることを確認するためです。

[トランスフォーメーション] ウィンドウと [ AmazonQ Developer コードトランスフォーメーションハブ] ウィンドウ

Amazon Q Developer はまずプロジェクトをローカルでビルドし、次に選択したコードと依存関係を AWS の安全で一時的なサンドボックス環境にコピーして処理します。この環境では、顧客管理キーを使用してコードを暗号化できます。

Amazon Q Developer はコードベースを分析し、トランスフォーメーション計画を生成します。次に、トランスフォーメーションワークフローを開始し、トランスフォーメーションプランの各プロジェクトについてプランを繰り返し実行します。プロジェクトごとに、NuGet パッケージと API のアップグレード、スタートアップまたはランタイム設定の更新、廃止予定のコードの書き換え、エラーのデバッグを行います。

Amazon Q Developer コードトランスフォーメーションハブでのトランスフォーメーションの進捗状況の表示

トランスフォーメーションが完了したら、[Q Developer によるトランスフォーメーションの概要] を選択して概要を確認します。トランスフォーメーションステータスは [成功] と表示されます。プロジェクトごとに、変更されたファイル更新されたパッケージ変更された API Linux の移植状況が表示されます。Linux の移植状況列では、プロジェクトが自動的に移植されたのか、未解決の問題を解決するための入力が必要なのかがわかります。

コードトランスフォーメーションステータスが [成功]

Linux 準備状況レポートをダウンロードして、手動での解決が必要な問題を調べることができます。

Linux 準備レポートのダウンロードを示すスクリーンショット

コードの変更はすべてサンドボックスで行われ、ローカルの作業リポジトリに更新を適用する前に確認できます。Amazon Q Developer が行った変更を手動で確認するには、[差分を表示] ビューを選択し、次に [Amazon Q Developer トランスフォーメーションハブ] ウィンドウでいずれかのファイルの [変更を表示] を選択します。

更新されたコードと元のコードの違いを示すスクリーンショット

変更を確認した後、「Q Developer によるトランスフォーメーションの概要」ウィンドウで「提案された変更を受け入れる」を選択して、ローカルの作業リポジトリに変更を適用します。

推奨変更を受け入れることを示すスクリーンショット

これで、引き続きローカルの作業リポジトリで Linux 準備状況レポートにある未解決の問題を修正し、同じ手順で残りのプロジェクトを繰り返し変換できます。

知っておくべきこと

  • 可用性 – .NET 移植用の Amazon Q Developer トランスフォーメーション機能は、Amazon Q Developer Pro Tier のサブスクリプションで本日プレビュー版をご利用いただけます。
  • サポートされている .NET バージョン – .NET 用の Amazon Q Developer トランスフォーメーション機能では、.NET Framework バージョン 3.5 以降、.NET Core 3.1、.NET 5 以降を使用して作成されたアプリケーションを、.NET 8 や.NET 9 などの現在サポートされているクロスプラットフォーム .NET バージョンに変換できます。
  • サポートされるアプリケーションタイプ – .NET 用の Amazon Q Developer トランスフォーメーション機能では、コンソールアプリケーション、クラスライブラリ、ユニットテスト、ウェブ API、Windows Communication Foundation (WCF) サービス、Model View Controller (MVC) と Single Page Application (SPA) のビジネスロジックレイヤーの各タイプの C# コードプロジェクトの移植がサポートされています。ただし、Razor Views や WebForms などの UI レイヤーは移植されません。また、Microsoft が作成した NuGet パッケージの依存関係を持つプロジェクトのみがサポートされます。Internet Information Server (IIS) に依存する .NET Framework アプリケーションでは、クロスプラットフォーム .NET への移植がサポートされるのはデフォルトの IIS 構成のみです。

開始するには、AWS Toolkit for Visual Studio をインストールし、ドキュメントの指示に従って .NET アプリケーションの移植とアップグレードを行います。

Prasad

原文はこちらです。