本トピックでは、.NET と .NET Framework について、それらの類似点と相違点をまとめ、どちらを使用するべきかに関するいくつかのガイダンスを示します。「比較の概要」セクションに主なポイントをまとめ、以降のセクションに詳細を示してあります。
本トピックの情報は要約であり、包括的な情報ではない点に注意してください。.NET と .NET Framework の比較に関する詳細については、「Microsoft: .NET - Comparison to other .NET Implementations」を参照してください。
比較の概要
.NET と .NET Framework の比較における主なポイントは次のとおりです。
- .NET はクロスプラットフォームであるのに対し、.NET Framework は Windows 専用です。
- .NET には、.NET Framework で利用できるすべての機能が含まれているわけではありません。また、.NET で利用できる機能についても、Visual COBOL では現在 .NET Framework でしかサポートされていない機能もあります。
.NET で利用可能な機能のうち、Visual COBOL で現在サポートされていない機能については、「.NET の既知の問題点および制約事項」を参照してください。
- .NET Framework のメジャー リリースは .NET Framework 4.8 を最後に終了していますが、.NET は引き続き新しいバージョンがリリースされています。Windows が提供されている限りは .NET Framework 4.8 も利用できると考えられますが、新機能、パフォーマンスの改善、および IDE の機能については、今後は .NET にのみ追加されます。
これを理由に .NET Framework から .NET への移行がすぐに必要になるわけではありませんが、ますます多くのシステムが .NET に移行していることから、Micro Focus では、いずれかの時点で移行が必要になると予想しています。
- 新しいアプリケーションを .NET にディプロイする場合は、.NET を使用することをお勧めします。
類似点
.NET と .NET Framework の主な類似点を次に示します。
- .NET には、.NET Framework 基本クラス ライブラリの大規模なサブセットが含まれています (ファクタリングは異なります)。
- .NET と .NET Framework の共有の API である .NET Standard は、すべての .NET 実装で利用可能です。
- .NET と .NET Framework は、Windows および Windows Server をサポートしています。
相違点
.NET と .NET Framework の主な相違点を次に示します。
- .NET は Windows、Linux、および macOS で動作します。.NET Framework は Windows で動作します。
注: Micro Focus では、macOS で動作する .NET の COBOL アプリケーションは現在サポートしていません。
- .NET では、ユーザー インターフェイスを使用したデスクトップ アプリケーションの作成は現在サポートしていません。
- .NET は完全なオープン ソースですが、.NET Framework は一部のみがオープン ソースです。
.NET の利点
.NET Framework ではなく .NET を対象とすると、次のような利点があります。
- .NET は、.NET プラットフォームの新しいアーキテクチャとして、将来的に .NET Framework と完全に置き換わると見られています。
- .NET を使用すると、アプリケーションを分離できます。アプリケーションを完全な自己完結型にできるため、他のアプリケーションとファイルを共有する必要がありません。
- .NET で実行するアプリケーションはディプロイが簡単で、パブリッシュしたファイルを対象のマシンにコピーするだけで済みます。
- .NET ベースのアプリケーションは分離されているため、いったんディプロイした後は、他のアプリケーションの動作に影響を与えることなく更新が可能です。
.NET か .NET Framework かの選択
アプリケーションの対象を .NET と .NET Framework のどちらにするかは、どちらのプラットフォームの方がアプリケーションの要件を満たすかに基づいて決定します。各プラットフォームが適した状況の概要を次に示します。
- 次の場合は .NET を使用します。
- ディプロイする新しいアプリケーションが .NET Framework でしか利用できない機能に依存していない場合。
- マイクロサービスの使用が軽度であり (.NET では各種のテクノロジを組み合わせることが可能なため)、各マイクロサービスの使用を最小限にできる場合。
- パフォーマンスとスケーラビリティが非常に重要である場合。このような場合について、Microsoft では .NET を ASP.NET とともに実行することを推奨しています。
- 異なるバージョンの .NET を必要とするアプリケーションを並行して実行する必要がある場合。
- 次の場合は .NET Framework を使用します。
- .NET では利用できない機能を使用する必要がある場合。次に例を示します。
- ASP.NET Web フォーム
- WCF サービス
- .NET Standard に含まれていない .NET Framework API
- .NET で利用可能な機能のうち、Visual COBOL で現在サポートされていない機能を使用する必要がある場合。たとえば、次の機能は現在サポートされていません。
- macOS へのディプロイ。
- Docker で実行されている Linux/Windows コンテナーへのディプロイ。
詳細については、「.NET の既知の問題点および制約事項」を参照してください。
注: 本トピックの情報は要約にすぎません。
Micro Focus では、対象とするプラットフォームを決定する前に、利用可能な各種のプラットフォームに関する包括的な情報を Microsoft の Web サイトで確認することをお勧めします。