.NET Core と .NET Framework の比較

本トピックでは、.NET Core と .NET Framework について、それらの類似点と相違点をまとめ、どちらを使用するべきかに関するいくつかのガイダンスを示します。「比較の概要」セクションに主なポイントをまとめ、以降のセクションに詳細を示してあります。

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

比較の概要

.NET Core と .NET Framework の比較における主なポイントは次のとおりです。

  • .NET Core はクロスプラットフォームであるのに対し、.NET Framework は Windows 専用です。
  • .NET Core には、.NET Framework で利用できるすべての機能が含まれているわけではありません。また、.NET Core で利用できる機能についても、Enterprise Developer では現在 .NET Framework でしかサポートされていない機能もあります。

    .NET Core で利用可能な機能のうち、Enterprise Developer で現在サポートされていない機能については、「.NET Core の既知の問題点および制約事項」を参照してください。

  • .NET Framework のメジャー リリースは .NET Framework 4.8 を最後に終了していますが、.NET Core は引き続き新しいバージョンがリリースされています。Windows が提供されている限りは .NET Framework 4.8 も利用できると考えられますが、新機能、パフォーマンスの改善、および IDE の機能については、今後は .NET Core にのみ追加されます。

    これを理由に .NET Framework から .NET Core への移行がすぐに必要になるわけではありませんが、ますます多くのシステムが .NET Core に移行していることから、Micro Focus では、いずれかの時点で移行が必要になると予想しています。

  • 新しいアプリケーションを .NET にディプロイする場合は、.NET Core を使用することをお勧めします。

類似点

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

  • .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 プラットフォームの新しいアーキテクチャとして、将来的に .NET Framework と完全に置き換わると見られています。
  • .NET Core を使用すると、アプリケーションを分離できます。アプリケーションを完全な自己完結型にできるため、他のアプリケーションとファイルを共有する必要がありません。
  • .NET Core で実行するアプリケーションはディプロイが簡単で、パブリッシュしたファイルを対象のマシンにコピーするだけで済みます。
  • .NET Core ベースのアプリケーションは分離されているため、いったんディプロイした後は、他のアプリケーションの動作に影響を与えることなく更新が可能です。

.NET Core か .NET Framework かの選択

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

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