こんにちは、はじめまして。初投稿のエンジニア、maimaiです。
今回は、2020年7月にAWSからリリースされた「Porting Assistant for .NET」を試してみました。
「Porting Assistant for .NET」は、.NET Frameworkで開発されたアプリケーションを .NET Coreに移植するためのサポートツールです。無料で使用できます。
このツールを実行すると、移植時に修正が必要なコードやアップグレードが必要なライブラリ候補を提示してくれます。
7月にリリースの記事を見つけてから、一回使ってみたかったんですよね。
それではさっそくやっていきましょう!
目次
そもそも .NET Framework と .NET Core って?
.NET Frameworkはマイクロソフトが提供するWindows向けの実行環境です。
実行ランタイムおよびさまざまなクラスライブラリや開発フレームワークなどが提供されています。ただし、こちらはWindows専用です。
一方、.NET Coreはオープンソースの汎用開発プラットフォームです。こちらもマイクロソフトが中心になってリリースしていますが、.NET Frameworkとの大きな違いは、
- オープンソースであること
- クロスプラットフォームであること(Windows、macOS、Linuxに対応)
という点です。
.NET Frameworkの最新バージョンは4.8ですが、今後提供されるのはbugfixやセキュリティ面の修正のみで、.NET Framework自体のメジャーアップデートは行われないことがマイクロソフト(のDirector)からアナウンスされています。
アナウンスによると、今動作している.NET Framework のアプリケーションを今すぐ.NET Coreに移植する必要はないと書かれています。
ただ今後、.NET Core でリリースされた新機能を使用したい場合や、アプリケーションをmacOSやLinux環境など、Windows以外のOSで動かしたいときには、.NET Core への移植が必要になってくる、ということになります。
動作要件
Porting Assistant for .NETはデスクトップアプリケーションです。
動作要件は以下のとおり。事前に準備しておきましょう。
- .NET Core SDK 3.1 → ここからダウンロード
- AWS CLI →動作に直接必要というより、AWS CLIのプロファイルが必要です。未設定の状態から構築するなら、AWS CLIを動くようにするのが手っ取り早いかも。
- Windows 7 以降のOS
- 管理者権限
- 1.8GHz以上のCPU
- メモリ2GB以上
- ディスク空き5GB以上
AWS CLIで使用するIAMユーザーのポリシーについては、公式ドキュメントの「AWS Identity and Access Management (IAM)」を参考に設定しましょう。(英語にめげないで!)
※ドキュメント中の「“Resource”: “arn:aws:execute-api:us-east-1:492443789615:3dmmp07yx6/*”」の「492443789615」部分はご自身のアカウントのIDに変更してください。そのままコピペすると、解析に失敗しちゃいます。
ダウンロードとインストール
インストーラーは、AWSのPorting Assistant for .NETのページから「Download Porting Assistant for .NET」ボタンをクリックしてダウンロードします。
あとはインストーラーを起動し、ダイヤログに従い操作すればインストールは完了です。
使ってみる
起動すると、このような感じになります。
左ペインの「Assessed solutions」をクリックすると、一覧画面が表示されます。
中央の「Add a solution」ボタンをクリックして、「Choose file」から.NET Frameworkのソリューション(.sln)を追加してみます。(今回はサンプルで作成したC#のフォームアプリケーションを使っています)
実行すると、こんな感じで実行結果が表示されます。
ソリューション名からさらに詳細な結果も確認できます。
Porting Assistant for .NETを使ってみたまとめ
ここまでPorting Assistant for .NETを試してみました。
一般的に、プログラムの移植や移行は事前の影響範囲や修正範囲の洗い出しに手間がかかりがちです。
今すぐWindowsの.NET Frameworkのアプリケーションを.Net Coreに移植するような機会は少ないのかもしれません。が、このツールを使うと数クリックで調査が完了するので、移植前の調査の手助けになるツールだなという印象を持ちました。工数見積もりのインプットにも使えそうです。
Enjoy!
参考
https://aws.amazon.com/jp/blogs/news/announcing-the-porting-assistant-for-net/
https://aws.amazon.com/jp/porting-assistant-dotnet/
- いよいよ IE (Internet Explorer) のサポートが終了します - 2022-02-02
- OWASP ZAPを使って脆弱性検査をしてみる - 2021-08-12
- カレンダーの祝日、違うかも?2021年の祝日にご注意 - 2021-02-10
- Porting Assistant for .NET を使ってみた - 2020-09-04