私はOWINとKatanaプロジェクトに関する多くの記事を読みましたが、全体像を把握することはできませんでした。
ASP.NET を使用する一般的な Web 開発者の場合:
- OWIN とは何ですか? また、OWIN はどのような問題を解決しますか (簡単に言うと)。IIS との関係は何ですか?
- OWIN は IIS に代わるものでしょうか? そうでない場合、どのような状況で OWIN が最適ですか?
- OWIN は私の日々の仕事のプロジェクトにどのように役立つのでしょうか?
- OWIN は自己啓発プロジェクトにどのように役立ちますか?
ベストアンサー1
上記のコメントに関して、OWIN はフレームワークではありません。OWIN は、Web サーバーと Web アプリケーションを分離し、ASP.NET アプリケーションを以前はサポートされていなかった環境に移行できるようにするために、Web サーバーと Web アプリケーションを構築する方法に関する仕様です。
OWIN より前は、ASP.NET アプリケーションを構築する場合、アセンブリへの依存度が高いため、本質的に IIS にバインドされていましたSystem.Web
。
System.Web
ASP (.NET 以外のバージョン) の頃から存在しており、内部には必要のない多くの機能 (Web フォームや URL 承認など) が含まれています。これらは既定ですべての要求で実行されるため、リソースが消費され、ASP.NET アプリケーションは一般に、Node.js などの同等のアプリケーションよりも大幅に遅くなります。
OWIN 自体にはツールやライブラリなどはありません。これは単なる仕様です。
一方、Katana は、現在の ASP.NET フレームワークと OWIN 仕様の橋渡しをするために開発された、完全に開発されたフレームワークです。現在、Katana は次の ASP.NET フレームワークを OWIN に正常に適応させています。
- ウェブAPI
- シグナルR
ASP.NET MVC と Web フォームは、現在も System.Web 経由でのみ実行されており、長期的にはこれらも分離する計画があります。
一方、IIS は Web サーバーにとって優れたリソース豊富なホストです。IIS を使用した ASP.NET のパフォーマンスの問題は、System.Web
すべてここに深く根ざしています。最近まで、Web サーバーのホスト方法を決定する際には、次の 2 つのオプションがありました。
- IIS
- セルフホスト
したがって、パフォーマンスが必要な場合は、セルフホスト オプションを選択します。IIS が提供するすぐに使用できる機能を多数必要とする場合は、IIS を選択しますが、パフォーマンスは低下します。
さて、3番目の選択肢として、Microsoftライブラリがあります。ヘリオス(現在のコード名) は、System.Web
邪魔になるものを取り除き、不要なライブラリやモジュールなしで、より「クリーンな」方法で IIS を使用できるようにすることを目的としています。Helios は現在プレリリース バージョンであり、完全にサポートされた Microsoft 製品にするために、コミュニティからのフィードバックを待っています。
この説明があなたにとって物事をより明確にしてくれることを願っています。
編集(2014年9月):
ASP.NET vNext が開発中であるため、Katana は徐々に廃止されつつあります。バージョン 3.0 は、スタンドアロン フレームワークとしての Katana の最後のメジャー リリースになる可能性が高いでしょう。
ただし、Katanaで導入されたすべての概念はASP.NET vNextに統合されており、プログラミングモデルはほぼ同じになります。引用元:フォーラム投稿David Fowler (ASP.NET vNext のアーキテクト) による作成:
vNext は Katana の後継です (そのため、非常に似ています)。Katana は、System.Web から脱却し、Web スタックのよりモジュール化されたコンポーネントへと移行するきっかけとなりました。vNext はその取り組みの継続と見ることができますが、さらに先へ進んでいます (新しい CLR、新しいプロジェクト システム、新しい http 抽象化)。
現在 Katana に存在するものはすべて vNext に組み込まれます。
編集(2015年2月):
ASP.NET vNext は現在 ASP.NET 5 と呼ばれ、.NET Core 5 上に構築されます。.NET Core 5 は、ASP.NET 5 と .NET Native の目標をサポートするように設計された、.NET Framework の軽量版です。ただし、ASP.NET 5 は .NET Framework 4.6 でもサポートされ、.NET Core 5 とともに利用可能になる予定です。ASP.NET 5 と .NET Core 5 はどちらも MIT のライセンスで提供され、コミュニティからの貢献を受け入れます。
編集(2015年5月):
さらに、ASP.NET Web API ブランドは廃止されますが、そのテクノロジは新しい ASP.NET MVC 6 のベースになります。以前の ASP.NET MVC バージョンは、で定義されたインターフェイスである IHttpHandler を実装して構築されていましたSystem.Web
。ASP.NET MVC 6 ではその依存関係がなくなり、さまざまなプラットフォームや Web サーバーに移植可能になります。
編集(2016年5月):
ASP.NET 5 は、近日リリース予定の Release Candidate 2 から正式に ASP.NET Core に名称変更されます。Entity Framework 7 も同様に Entity Framework Core に名称変更されます。公式発表の詳細とその理由については、Scott Hanselman のブログ投稿をご覧ください。ASP.NET 5 は終了しました - ASP.NET Core 1.0 と .NET Core 1.0 の紹介
編集(2016年5月):
Release Candidate 2 のリリースにより、ASP.NET Core は変更され、将来の Web アプリは実際には着信 HTTP 要求を処理するように設定された .NET Core コンソール アプリになりました。この概念により、ASP.NET Core は、Microsoft が採用したマイクロサービス アーキテクチャ サポートと Azure Service Fabric による実装のアプローチとさらに一致するようになります。詳細については、公式ブログ投稿をご覧ください。ASP.NET Core RC2 の発表