![[アップデート] AWS Transform の .NET モダナイゼーション機能が強化されました](https://images.ctfassets.net/ct0aopd36mqt/33a7q65plkoztFWVfWxPWl/a718447bea0d93a2d461000926d65428/reinvent2025_devio_update_w1200h630.png?w=3840&fm=webp)
[アップデート] AWS Transform の .NET モダナイゼーション機能が強化されました
いわさです。
旧 Amazon Q Developer の/transform機能は、今は AWS Transform という個別のサービスで、メインフレームや VMware など様々なプラットフォームを対象にモダナイズや移行を行うための変換機能が提供されています。
これまで、.NET を変換する機能も提供されていたのですが、ASP.NET Web Forms が未サポートだったり、制限事項が実は結構ありました。
これが先日アナウンスされたアップデートによって色々と強化されており、これまでサポートされていなかった ASP.NET Web Forms の Blazor への変換や、Entity Framework などがサポートされるようになっています。
今回は Blazor への変換を試してみたので紹介します。
移行対象プロジェクトの用意
AWS Transform の .NET モダナイゼーション機能は GitHub などのリポジトリを指定することで、そこからソースコードを取得して解析し変換したものを別のリモートブランチとしてプッシュしてくれます。(追加でデプロイまでするオプションもある)
今回は次のように Visual Studio 2022 を使って ASP.NET Web Forms のデフォルトプロジェクトを作成してみました。

公開リポジトリは以下になります。
AWS Transform では普通に .NET 変換を指示するだけ
移行元プロジェクトが用意できたので AWS Transform を使って変換を行ってみます。
手順は割愛しますが前提となる AWS Transform は利用可能な状態です。
なんか UI がちょっと変わったような気もしますね、新しくプロジェクトを作成して .NET モダナイゼーションの指示をします。

途中何度かユーザー入力を待つタイミングがあるので都度操作していきます。
それらのいずれかで GitHub 接続を行ってリポジトリを指定する場面があるので、指示しましょう。

なお、先日公式でリリースされた .NET 10.0 への変換もサポートされているみたいです。
今回はデフォルトの .NET 8.0 で試しました。

変換が成功したら End Job を選択して AWS Transform 上での操作は終わりです。
一連の流れの中では .NET バージョンの指定くらいで、Blazor を明示的に指定する場面はありませんでした。ASP.NET Web Forms であれば自動で変換先が Blazor になるみたいですね。

変換後のプロジェクトを確認する
変換後のプロジェクトですが、いつものように新しいリモートブランチにプッシュされていました。

こちらを取得してビルドしてみたところ、ビルドエラーになりました。
Main 関数が見つからないと怒られています。リポジトリ内を探してみたところ、main.cs もなかったです。どこだろう。
% dotnet build
Restore succeeded with 3 warning(s) in 0.2s
/Users/iwasa.takahito/work/hoge1201transform/hoge-sample-asp-webforms/hoge-sample-asp-webforms/hoge-sample-asp-webforms.csproj : warning NU1701: Package 'Microsoft.AspNet.FriendlyUrls.Core 1.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework 'net8.0'. This package may not be fully compatible with your project.
:
CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point
Build failed with 1 error(s) and 7 warning(s) in 1.5s
ちなみにコードを眺めてみたところ、一応期待どおり Blazor に変換しようとはしてくれているみたいです。

さいごに
本日は AWS Transform の .NET モダナイゼーション機能が強化されたので、ASP.NET Web Forms から Blazor への変換ができるのか試してみました。
自動で ASP.NET Web Forms であることを認識して、Blazor に変換しようとしてくれましたね。
残念ながら初期テンプレート状態でも即ビルド実行できるような形ではなかったですが、AI が実行してくれているので今後の精度向上に期待したいところです。
良ければ一度試してみてください。








