.NET CoreとASP.NET Core


回答:


209

Update 2020:ASP.NET Core 3以降は.NET Coreに依存するようになり、.NET Frameworkでは使用できなくなったことに注意してください。以下の説明はASP.NET Core 1.x-2.xに関するものです。レイヤー分離はASP.NET Core 3.0にも当てはまりますが、ASP.NET Coreレイヤーは3.0以降の.NET Frameworkの上で使用できなくなりました。

.NET Coreはランタイムです。それのために構築されたアプリケーションを実行できます。

ASP.NET Coreは、Webアプリケーションを構築するためのフレームワークを形成するライブラリのコレクションです。ASP.NET Coreライブラリは、.NET Coreと「フル.NET Framework」(長年Windowsに同梱されています)の両方で使用できます。

紛らわしいのは、ASP.NET Coreのライブラリとツールを使用するアプリケーションは通常「ASP.NET Core Application」と呼ばれ、.NET Core用か.NET Framework用に構築されたものかは理論的には言及されていないことです。だから、「ASP.NETアプリケーションのコア」であるにも「.NETアプリケーションのコア」または「.NET Frameworkのアプリケーション」。

この画像は、関連するテクノロジーの関係を示しています(このブログ投稿から取得) .NET Webアプリケーションテクノロジー

ここでは、ASP.NET Coreが.NET Frameworkと.NET Coreの両方の「上に」構築されているのに対し、「ASP.NET」(現在は「クラシックASP.NET」と呼ばれることも多い)は.NET Frameworkのみであることがわかります。


22
では、クラシックASPとは何でしょうか。「古代のASP」?:p
Dan Schnau 2017

1
そのため、アプリケーションを使用ASP.NET Core して開発した場合、Webサーバーにインストールする必要がありますか.NET Core RuntimeASP.NET Core runtimeそれともそれASP.NET Core runtimeで十分です
LP13

バージョンによって異なりますが、2.1はそれを少し分割しますが、「ホスティングバンドル」をサーバーにインストールする限り、問題はありません。.NET Framework上のASP.NET Core用に開発する場合でも、必要なIISモジュール用のホスティングバンドルが必要です
Martin Ullrich

3
@DanSchnau、「Classic ASP」、「ASP.NET」、「Classic ASP.NET」、「ASP.NET Core」があるため、まったく競合しません:)
Gouda

@ LP13:「ASP.NET Coreランタイム」はありません。それ自体では実行できない一連のパッケージです(.NET Coreが事前にインストールされているか、自己完結型アプリとして出荷されていません)
Tseng

43

.NET Core を使用する ASP.NET Core-すべての依存関係は自己完結型であり、ほとんどのNuGetパッケージを使用でき、Windows固有のパッケージを使用できず、Windows、Linux、Macで実行できます。

.NET Frameworkを使用する ASP.NET Core-ほとんどの依存関係は自己完結型で、Windowsでのみ実行され、Windows固有のNuGetパッケージにアクセスできます。対象のマシンにインストールされている.NET Frameworkバージョンが必要です。


8
誰がこれらのものに名前を付けますか?これは非常に混乱します。
ニック

1
@Nick:マイクロソフトマーケティング。彼らはこれについて長い歴史を持っています。彼らはまだウェブを発見していません-製品の一般的な名詞を使用しています(検索エンジンの世界ではあまり一般的ではない一般的な単語のほうがよく、辞書にないユニークな単語が望ましい)。
Peter Mortensen

23

ASP.NET Coreは、.NET Coreがサポートするワークロードの1つです。

.NET Coreガイドから:

.NET Core自体には、ツール、ローカルサービス、テキストベースのゲームに役立つ単一のアプリケーションモデル(コンソールアプリ)が含まれています。次のような機能を拡張するために、.NET Core上に追加のアプリケーションモデルが構築されています。

  • ASP.NET Core
  • Windows 10ユニバーサルWindowsプラットフォーム(UWP)
  • Xamarin.Forms

これは私にとってより適切な答えです。コンソールアプリの.Net Core、WebアプリのASP.Net Core。
Shawn Zhang

5

.NET Frameworkは最後のリリースです。4.8以降はありません。マイクロソフトは.NET Coreを継続します。この時点から、プロジェクトで.NET Coreを優先する必要があります。


2

その上で、誰かを助けるかもしれないことを付け加えたいと思います。

.NET Coreリクエストパイプラインには、ミドルウェアインジェクションと呼ばれるものがあります。正しく実装されていれば、これは非常に便利です。アプリケーションの例外を自動的にインターセプトし、すべてのメソッドにログインするのではなく、1か所でのロギングをはるかに簡単にできるからです。


回答に1つ以上の参照/リンクを追加できますか?
Peter Mortensen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.