.NET Core と .NET Framework の比較

重要: Linux 上の .NET Core は、早期採用者製品 (Early Adopter Product; EAP) 機能としてのみ提供されます。提供の目的は、これらの新機能のテストおよびフィードバックを行えるようにすることです。ファイル ロックはあらゆる状況で機能するわけではなく、例外が発生したり、無視されたりする可能性もあることに注意してください。今後もこの機能の開発が続けられ、パッチ アップデートおよび将来のリリースによって追加のインターフェイスが提供されます。詳細については、Micro Focus SupportLine までお問い合わせください。

本トピックでは、.NET Core と .NET Framework について、それらの類似点と相違点をまとめ、どちらを使用するべきかに関するいくつかのガイダンスを示します。

本トピックの情報は要約であり、包括的な情報ではない点に注意してください。.NET Core と .NET Framework の比較に関する詳細については、「Microsoft: .NET Core - Comparison to other .NET Implementations」を参照してください。

類似点

.NET Core と .NET Framework の主な類似点を次に示します。

  • .NET Core には、.NET Framework 基本クラス ライブラリの大規模なサブセットが含まれています (ファクタリングは異なります)。
  • 共有の API である .NET Standard は、すべての .NET 実装で利用可能です。
  • .NET Core と .NET Framework は、Windows および Windows Server をサポートしています。

相違点

.NET Core と .NET Framework の主な相違点を次に示します。

  • .NET Core は Windows、Linux、および macOS で動作します。.NET Framework は Windows で動作します。
    注: Micro Focus では、macOS で動作する .NET Core の COBOL アプリケーションは現在サポートしていません。
  • .NET Core では、ユーザー インターフェイスを使用したデスクトップ アプリケーションの作成は現在サポートしていません。
  • .NET Core は完全なオープン ソースですが、.NET Framework は一部のみがオープン ソースです。

.NET Core の利点

.NET Framework ではなく .NET Core を対象とすると、次のような利点があります。

  • .NET Core を使用すると、アプリケーションを分離できます。アプリケーションを完全な自己完結型にできるため、他のアプリケーションとファイルを共有する必要がありません。
  • .NET Core で実行するアプリケーションはディプロイが簡単で、パブリッシュしたファイルを対象のマシンにコピーするだけで済みます。
  • .NET Core ベースのアプリケーションは分離されているため、いったんディプロイした後は、他のアプリケーションの動作に影響を与えることなく更新が可能です。

.NET Core か .NET Framework かの選択

アプリケーションの対象を .NET Core と .NET Framework のどちらにするかは、どちらのプラットフォームの方がアプリケーションの要件を満たすかに基づいて決定します。各プラットフォームが適した状況の概要を次に示します。

  • 次の場合は .NET Core を使用します。
    • マイクロサービスの使用が軽度であり (.NET Core では各種のテクノロジを組み合わせることが可能なため)、各マイクロサービスの使用を最小限にできる場合。
    • パフォーマンスとスケーラビリティが非常に重要である場合。このような場合について、Microsoft では .NET Core を ASP.NET Core と共に実行することを推奨しています。
    • 異なるバージョンの .NET を必要とするアプリケーションを並行して実行する必要がある。
  • 次の場合は .NET Framework を使用します。
    • .NET Core では利用できない機能を使用する必要がある場合。次に例を示します。
      • Windows フォームおよび WPF アプリケーション
      • ASP.NET Web フォーム
      • WCF サービス
      • .NET Standard に含まれていない .NET Framework API
    • .NET Core で利用可能な機能のうち、Enterprise Developer で現在サポートされていない機能を使用する必要がある場合。たとえば、次の機能は現在サポートされていません。
      • macOS へのディプロイ。
      • Docker で実行されている Linux/Windows コンテナーへのディプロイ。
      詳細については、「.NET Core の既知の問題点および制約事項」を参照してください。
注: この情報は要約にすぎません。Micro Focus では、対象とするプラットフォームを決定する前に、利用可能な各種のプラットフォームに関する包括的な情報を Microsoft の Web サイトで確認することをお勧めします。