AWS、.NET 向け移植アシスタントをオープンソース化: 「広範な問題」の初期段階

Table of Contents

AWS、.NET 向け移植アシスタントをオープンソース化: 「広範な問題」の初期段階

AWS は、.NET Framework プロジェクトを .NET Core に変換したいユーザーを支援することを目的とした Porting Assistant for .NET を GitHub でオープンソースとして公開しました。

Microsoftの.NET Frameworkは旧来のWindows専用バージョンですが、.NET Coreはクロスプラットフォームかつオープンソースであり、バージョン5.0の登場とともに.NETという名称に変更されます。.NET Frameworkアプリケーションを移行したい理由はいくつかありますが、その一つは、Microsoftのプログラムマネジメントディレクターであるスコット・ハンター氏によると、現在のバージョン4.8が「.NET Frameworkの最後のメジャーバージョンになる」ということです。もう一つは、より高価なWindows Serverではなく、Linuxにデプロイできることです。

プロジェクトの依存関係を視覚化することで、アプリケーションの各部分がどのようにリンクしているかを簡単に確認できます。

AWSは、.NETアプリケーションをLinuxに移植することを目的とした新しいツールで開発者の誘致を試みる

続きを読む

Microsoft の Hunter 氏は、「既存の .NET Framework アプリケーションを保守している場合は、これらのアプリケーションを .NET Core に移行する必要はありません」と述べています。

.NET Framework はWindowsに引き続き搭載され、Microsoft自身もオペレーティングシステムとVisual Studioを含むアプリケーションの両方で引き続き使用します。しかし、.NET Frameworkと.NET Coreの差は拡大するでしょう。最高のパフォーマンスを求める開発者や、他にはない機能を利用したい開発者は、移行を望むでしょう。

AWSは特にこの点に熱心で、おそらくクラウド上でのWindows Serverの必要性を減らしたいと考えているのでしょう。AWSのデベロッパーアドボケイトであるスティーブ・ロバーツ氏の公式見解は、「.NETへの将来の投資、ライセンス費用の削減、そしてLinux上でのアプリケーションのスケーリングとパフォーマンスを向上させるイノベーションを活用するため」です。

このクラウド大手は2020年7月に移植支援ツールの最初のバージョンをリリースしましたが、現在はさらに一歩進んでソースコードを公開し、将来の計画について説明しています。

Porting Assistantは、パッケージ情報のデータベースに基づいて依存関係を分析することに重点を置いています。同じくオープンソース化されたCodelyzerというフレームワークは、Porting Assistantの評価機能に使用できるよう、C#ソースコードのメタデータを収集します。

アシスタントは.NETプロジェクトファイルを変換し、可能な限り.NET Coreと互換性のあるパッケージへの参照を更新することもできます。ただし、AWSは次のように警告しています。「プロジェクトを移植した場合、互換性のために他のAPI、パッケージ、コードブロックを置き換えたりリファクタリングしたりする必要があるため、完全に.NET Coreと互換性があるとは限りません。」

AWSは、「.NETコミュニティから[Porting Assistant]に対して肯定的な反応があった」と断言していますが、決して包括的なものではありません。Microsoftも移植ツールを提供しており、その中には独自の依存関係ビューアを備え、互換性のないアセンブリを特定できるPortability Analyzerも含まれていますが、代替案の推奨に関してはAWSツールほど機能的ではありません。

シンプルなアプリケーションで動作するtry-convertというプロジェクトもあります。これは「.NETチームのメンバーが余暇に構築した」とのことですが、これはMicrosoftがこの問題に十分な注意を払っていないことを示しているのかもしれません。.NET Frameworkは2002年に初めてリリースされましたが、移行しなければ将来が制限されることになる膨大な数のアプリケーションが存在します。

AWS

アマゾンさん、オープンソースコードをコピーして新製品を作るなら、少なくとも作成者をクレジットしてください。

続きを読む

AWSツールに関しては、IDEとの統合、拡張性、コードリポジトリのスキャンサポート強化などの改善に取り組んでいると同社は述べています。「.NET Frameworkアプリケーションを.NET Coreに移植することは、幅広い問題領域を伴います」とロバーツ氏は述べ、プロセスをスピードアップするためにできることはまだまだたくさんあると述べています。

AWSはオープンソースへの中途半端なサポートと認識で度々批判を浴びており、最近ではChrome拡張機能でフォークしたコードの作者を公式に認めていなかったという事件が挙げられます。AWSがオープンソースへの関与を改めて認識できたのは喜ばしいことであり、今回の件でロバーツ氏は「AWSは複数のオープンソースプロジェクトと貢献の恩恵を受けており、そのサポートと貢献に感謝している」と明言しました。これは安全な領域と言えるでしょう。

AWS が、現在の断片的な取り組みではなく、クラウドのライバルである Microsoft と協力して .NET 移植ツールの改善に取り組んだらどうなるでしょうか?®

Discover More