7.2. .NET Framework からの移植
.NET Framework から移行する場合は、次の Microsoft の記事を参照してください。
- 一般的なガイドラインは、「Porting to .NET Core from .NET Framework」を参照してください。
- ライブラリの移植は、「Porting to .NET Core - Libraries」を参照してください。
- ASP.NET Core への移行は、「Migrating to ASP.NET Core」を参照してください。
.NET Framework に存在するいくつかの技術と API は、.NET Core および .NET では使用できません。アプリケーションまたはライブラリーにこれらの API が必要な場合は、代替を見つけることを検討するか、.NET Framework の使用を継続してください。.NET Core および .NET では、次の技術と API はサポートされません。
- Windows Forms や WPF (Windows Presentation Foundation) などのデスクトップアプリケーション
- Windows Communication Foundation (WCF) サーバー (WCF クライアントがサポートされています)
- .NET リモート処理
さらに、多くの .NET API は、Microsoft Windows 環境でのみ使用できます。次の一覧では、この Windows 固有の API の例を示しています。
-
Microsoft.Win32.Registry -
System.AppDomains -
System.Drawing -
System.Security.Principal.Windows
.NET Portability Analyzer を使用して、API の相違点と交換の可能性を特定することを検討してください。
たとえば、次のコマンドを入力して、.NET Framework アプリケーションで使用される API が、新しいバージョンの .NET Core でどの程度サポートされているかを確認します。
$ dotnet /path/to/ApiPort.dll analyze -f . -r html --target '.NET Framework,Version=<dotnet-framework-version>' --target '.NET Core,Version=<dotnet-version>'
<dotnet-framework-version> を、現在使用している .NET Framework のバージョンに置き換えます。たとえば、4.6 です。<dotnet-version> を、移行先の .NET Core のバージョンに置き換えます。たとえば、3.1 です。
.NET Core のデフォルトバージョンでサポートされないいくつかの API は、Microsoft.Windows.Compatibility NuGet パッケージで利用できます。この NuGet パッケージを使用するときは注意してください。提供されている API の一部 (Microsoft.Win32.Registry など) は Windows でのみ動作し、アプリケーションが Red Hat Enterprise Linux と互換性がないようにします。