7.2. .NET Framework からの移植

.NET Framework から移行する場合は、次の Microsoft の記事を参照してください。

.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 と互換性がないようにします。