web-dev-qa-db-ja.com

ASP.NET Core(.NET Core)とASP.NET Core(.NET Framework)の違い

ASP.NET Core Web(.NET Core)とASP.NET Core Web(.NET Framework)の違いは何ですか?

.NET Frameworkは、.NET Coreに関して 同様のパフォーマンス を提供しますか?

71
Justin Homes

これは最初は混乱する可能性がありますが、覚えておくことが重要です。結局のところ、「ASP.NET Core」は、プロジェクトにインストールできるNuGetパッケージの集まりにすぎません。

。NET Core上のASP.NET Coreは、クロスプラットフォームASP.NET Coreです。 Windows、Mac、Linux(Dockerを含む)で実行できます。サーバーに.NET Coreをインストールする必要はありません-アプリケーションに依存関係をバンドルできます。

。NET Framework上のASP.NET Coreは、「フル」または「デスクトップ」.NET Framework(.NET Framework 4.6など)上のASP.NET Coreです。 2)。これらのアプリケーションはWindows上でのみ実行できますが、ASP.NET Coreに関する他のすべては同じように動作します。

benchmarks をリンクすると、ASP.NET 4.6よりも高いパフォーマンスが得られますが、現在は.NET Coreが最高です:


ASP.NET 4.6:<50k req/sec

ASP.NET Core(CLR):40万req /秒

ASP.NET Core(.NET Core、Linux):900k req /秒

ASP.NET Core(.NET Core、Windows):> 1.1m req/sec

ただし、これらのベンチマークはやや古く(2016年2月)、RTM以前のコードを反映しています。それ以降改善されていても驚かないでしょう。

89
Nate Barbettini

.NetCoreを備えたASP.NET Coreは、cross-platform(Windows、Linuxまたは他のプラットフォームで実行可能)、high-performanceopen-sourceフレームワークは、最新のクラウドベースのインターネット接続アプリケーションを構築します。 IIS、Nginx、Apache、Docker、または独自のプロセスでセルフホストでホストする機能があります。

ASP.NET Coreは完全にNuGetパッケージとして出荷されます。これにより、アプリを最適化して、必要なNuGetパッケージのみを含めることができます。実際、.NET Coreを対象とするASP.NET Core 2.xアプリには、単一のNuGetパッケージのみが必要です。アプリの表面積を小さくすると、セキュリティが強化され、サービスが軽減され、パフォーマンスが向上します。

.netコアアプリケーションでasp.netコアを実行するために.Netフレームワークをインストールする必要はありません。 .netコアを使用したASP.NET Coreアプリケーションは、MainメソッドでWebサーバーを作成するコンソールアプリです。 Kestrel Webサーバーを使用してアプリケーションを実行します。

Visual Studio Code、Atomなどのエディターを使用してアプリケーションを実行することもできます。

現在のように、Aspx、WPF、WCF、およびWebServicesをサポートしていません。組み込みの依存性注入をサポートします。 asp.netコアと.netコアのランタイムであるcoreclrを使用します。

Asp.Core with .Net framework一方、.Net frameworkは2005年よりずっと前に開始され、新機能を追加し続け、少し複雑なフレームワークになりました。重い。クロスプラットフォームではありません。 Aspx、WPF、WCF、およびWebServicesをサポートします

。Net Framework実行計画enter image description here

。Netコア実行計画enter image description here

7

ASP.NET COREusing .NET Core-すべての依存関係は自己完結型で、ほとんどのNugetパッケージを使用でき、ウィンドウは使用できません特定のパッケージ、Windows、Linux、Macで実行可能

ASP.NET COREusing .NET Framework-ほとんどの依存関係は自己完結型で、Windows上でのみ実行され、 Windows固有のnugetパッケージ。マシンにインストールされているターゲットの.netフレームワークバージョンが必要です。

3
Nathan Alard