ASP.NET vNextチュートリアル によると:vNext is Host agnostic . You can Host your app in IIS, or self-Host in a custom process
現在のasp.netホストと新しいホストの違いを示して、これを深く理解するのを誰かが助けてくれますか?
2002年には、基本的に.NETプラットフォーム用のWebサーバーが1つあり、それがIISでした。数年後、Visual Studio開発Webサーバー(「Cassini」、以前は元のWeb Matrixの一部)が開発専用サーバーとして登場しました。しかし、これらはすべて、最終的にはSystem.WebをアプリケーションとWebサーバー間のホスティングレイヤーとして使用していました。 System.WebホストはIISと緊密に結合されており、他のホストで実行するのは非常に困難です。VSDevWebサーバーでの実装でさえ、特定の機能のみをサポートしているため制限されていました。 、System.Webに依存する典型的なASP.NETアプリケーションには、まだ1つの本番品質の「ホスト」しかありませんでした。
約10年早送りすると、アプリケーションとWebサーバー間のインターフェイスとして [〜#〜] owin [〜#〜] が登場しました。これにより、OWIN互換のアプリケーションは、OWINを介してOWIN互換のホスティングレイヤーを持つWebサーバーと通信できるようになりました。 Microsoftは、 Katana を、ASP.NET Web API、ASP.NET SignalR、およびIIS)を含む複数のサーバー上で多くのサードパーティフレームワークをホストできる1つのOWIN実装として記述しました。 (およびIIS Express)、Katanaのセルフホストサーバー、およびカスタムホスト(つまり、カスタムアプリでKatanaのホストを実行します) Nowin と呼ばれる別のOWIN実装があります。 Katanaと同じアプリを実行できる。これはホストに依存しない例です。
ここでさらに数年早送りすると、 ASP.NET vNext があります。これは、ミドルウェアとホストにとらわれないという点でOWINと非常によく似たモデルに従います。 ASP.NET vNextには、OWINミドルウェアアプリコンポーネントの互換性レイヤーもあります。
ASP.NET vNextは、KatanaやOWINと同じように、ホストに依存しません。 ASP.NET vNextを使用して作成されたアプリケーションは、IApplicationBuilder
(以前のIBuilder
)インターフェイスなどのホスト抽象化レイヤーについてのみ認識します。アプリケーションはWebサーバーと直接通信しません。この抽象化の多くは「機能インターフェイス」を介して行われるため、一部のサーバーは機能を実装でき、他のサーバーは実装しないことを選択できます。
ASP.NET vNextアプリケーションは、IIS、IIS Express、独自のカスタムEXE、新しいクロスプラットフォーム Kestrel サーバーでホストでき、間違いなくさらに多くのホストが未来。
KatanaもASP.NETvNextも、IISまたは他のホストの代わりにはなりませんが、どちらにも代替Webサーバーがあります。IISは、比較していくつかのより高度な機能をサポートします。 KatanaおよびASP.NETvNextには、アプリケーションのウォームアップ、より豊富なアプリケーションの有効期間管理(つまり、アプリがクラッシュしたときの処理、使用するメモリ量の制御、その他の種類の調整)、リモート管理などがあります。
私はそのグループの一員ではなかったので、OWINを作成する動機について話すことはできません。しかし、Webサーバーのホストを抽象化することのメリットはたくさんあります。
ASP.NET vNextの動機は、 はじめに チュートリアルの公式ASP.NETvNextサイトに部分的にリストされています。簡単な要約は次のとおりです。Webアプリとサービスを構築するためのクロスプラットフォーム、オープンソース、サイドバイサイド、従量課金制、ホストに依存しないプラットフォームを用意する。いくつかのマーケティング関連のように聞こえますが、これらはすべてシステムの重要な側面です。 NodeJSは、これとまったく同じ機能のセットを提供しますが、もちろん詳細を見ると、もちろん多くの実装の違いがあり、間違いなくいくつかのより深い哲学的な違いもあります。これらの機能をサポートする動機は、一般的に自明です。
これは、ASP.NET Webフォームから、MVC、Web API、SignalR、Katana、ASP.NET vNextまで、すべてを含むASP.NETの一般的な対象者に関するものであることに注意してください。これらのフレームワークはいずれも、あらゆる規模のプロジェクトに適しており、適度に熟練した開発者が使用できる必要があります。これは、それらを使用するプロジェクトのサイズを見ると明らかです。このサイト(StackOverflow.com)は、一部の非常に高度な開発者(私が推測する)によってASP.NET MVCを使用して部分的に構築されていますが、比較的初心者によって構築されたMVCを使用するはるかに小さなサイトが多数あります。 ASP.NET vNextは、これらの同じフレームワークのほとんどの将来のバージョンであるため、同じタイプのアプリケーションと同じタイプの開発者を対象としています。
ASP.NET vNextとOWINの詳細については、開発者の1人からのブログ投稿を確認してください: http://whereslou.com/2014/06/10/asp-net-vnext-moving-parts -owin /