OWINとKatanaのプロジェクトに関する多くの記事を読みましたが、全体像を把握することができませんでした。
ASP.NETを使用する通常のWeb開発者向け:
- OWINとは正確に何で、どのような問題を解決しますか(簡単な言葉で)。IISとの関係は何ですか?
- OWINはIISを置き換えますか?そうでない場合、どのような状況でOWINが最適ですか?
- OWINは毎日の作業プロジェクトでどのように役立ちますか?
- OWINは自己改善プロジェクトでどのように役立ちますか?
OWINとKatanaのプロジェクトに関する多くの記事を読みましたが、全体像を把握することができませんでした。
ASP.NETを使用する通常のWeb開発者向け:
回答:
上記のコメントに関して、OWINはフレームワークではありません。OWINは、WebサーバーとWebアプリケーションを分離し、ASP.NETアプリケーションをこれまでサポートされていなかった環境に移動できるようにするためのWebサーバーとWebアプリケーションの構築方法に関する仕様です。
OWIN以前は、ASP.NETアプリケーションを構築すると、System.Web
アセンブリへの依存度が高いため、本質的にIISにバインドされていました。
System.Web
ASP(非.NETバージョン)以降ずっと存在し、内部には不要な多くのものが含まれています(WebフォームやURL承認など)。これはデフォルトですべてのリクエストで実行されるため、リソースを消費し、ASPを作成します。 .NETアプリケーションは一般に、たとえばNode.jsなどの対応するアプリケーションよりもかなり低速です。
OWIN自体には、ツールやライブラリなどはありません。あくまでも仕様です。
一方、カタナは完全に開発されたフレームワークであり、現在のASP.NETフレームワークとOWIN仕様の間の橋渡しをするために作成されました。現在、KatanaはOWINに次のASP.NETフレームワークをうまく適合させています。
ASP.NET MVCとWebフォームは引き続きSystem.Webを介して排他的に実行されており、長期的にはそれらも分離する計画があります。
一方、IISはWebサーバーにとって優れたリソースのあるホストです。IISを使用したASP.NET全体のパフォーマンスの問題は、深い原因System.Web
のみにあります。最近まで、どのようにWebサーバーをホストするかを決定するとき、2つのオプションがありました。
したがって、パフォーマンスが必要な場合は、セルフホストオプションを選択します。IISが提供するすぐに使える多くの機能が必要な場合は、IISを使用しますが、パフォーマンスは低下します。
さて、3つ目のオプションであるHelios(現在のコードネーム)という名前のMicrosoftライブラリSystem.Web
は、邪魔にならないように削除し、不要なライブラリやモジュールなしでIISをより「クリーン」な方法で使用できるようにします。Heliosはプレリリースバージョンになり、Microsoft製品を完全にサポートするために、コミュニティからのフィードバックを待っています。
この説明があなたにとってより良いことを明確にしてくれることを願っています。
編集(2014年9月):
ASP.NET vNextが開発中であるため、カタナは徐々に引退しています。バージョン3.0は、スタンドアロンフレームワークとしてのKatanaの最後のメジャーリリースになる可能性が高いです。
ただし、Katanaで導入されたすべての概念はASP.NET vNextに統合されているため、プログラミングモデルはほとんど同じです。David Fowler(ASP.NET vNextのアーキテクト)によるフォーラム投稿からの引用:
vNextはKatanaの後継です(そのため、似ているように見えます)。Katanaは、System.Webから、そしてWebスタック用のよりモジュール化されたコンポーネントへの脱却の始まりでした。vNextはその作業の続きとして見ることができますが、さらに進んでいます(新しいCLR、新しいプロジェクトシステム、新しいhttp抽象化)。
今日カタナに存在するすべてのものは、vNextへの道を開くでしょう。
編集(2015年2月):
ASP.NET vNextはASP.NET 5として知られ、.NET Core 5の上に構築されます。.NETCore 5は、ASP.NET 5と.NET Nativeの目標をサポートするように設計された.NET Frameworkの軽量分解バージョンです。 。ただし、ASP.NET 5は.NET Framework 4.6でもサポートされ、.NET Core 5とともに利用可能になる予定です。ASP.NET5と.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 Coreに改名されるEntity Framework 7も同様です。公式発表とその背後にある理由の詳細については、Scott Hanselmanのブログ投稿をご覧ください。ASP.NET5は廃止されました-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の発表をご覧ください。
OWINを自分で定義する必要がある場合、それは次のようになります。「RubyおよびNode.js Web開発コミュニティからの最高のアイデア、.NETへの移行」
しかし、これはASP.NET開発者には役立ちません。私自身の定義は、次のようなものになります。
OWINは、.NET WebサーバーとWebアプリケーション間の標準インターフェースを定義します。OWINインターフェースの目標は、サーバーとアプリケーションを分離することです。あなたが提起した質問に答える必要がある場合、ここにそれがあります:
OWINはインターフェース仕様です。IISからWebアプリケーションを分離します。
既成のコンポーネント(Katanaとは何か)を使用している場合、アプリケーション機能の一部は、古いASP.NETに比べて実装がはるかに簡単です。サードパーティのIDプロバイダー(Facebook、Twitter)による認証は、この一例です。
実用的な観点からカバーしていきます。
Katanaは、MicrosoftでOWINを実装するためのプロジェクト名です。
OWINとは正確に何で、どのような問題を解決しますか(簡単な言葉で)。IISとの関係は何ですか?
OWIN(.NETのOpen Web Interface)は標準(OWIN仕様)で、Katanaは.NETライブラリです。ここからnugetを取得できます。OWINとKatanaは、ウェブ上では同義語になった。
OWINの前はIIS
、OWINを使用する唯一のオプションは、他のアプリケーション(エントリポイントを持つ)をWebサーバーとして使用することでした。
OWINはIISを置き換えますか?そうでない場合、OWINはどのような状況に最適ですか?
IISに代わるものではありません。OWINとIISを使用できます。そのためのMicrosoft.Owin.Host.SystemWeb
ナゲットがあります。IISでの処理方法を最適化/変更する場合や、WindowsフォームアプリケーションなどのカスタムWebサーバーを作成する場合に最適です。
OWINは毎日の作業プロジェクトでどのように役立ちますか?
WebサーバーをIIS(Windows)で実行する必要がなくなるため、サーバーの実行コストを削減できます(WindowsサーバーはUnixベースのサーバーよりも高価であり、LinuxのMonoのコンソールアプリケーションで実行できます)。
OWINは自己改善プロジェクトでどのように役立ちますか?
学習Microsoft.Owin
(およびその他の関連OWINライブラリー)により、クライアントとWebサーバー間のHTTP通信の仕組みに関する知識が向上します。
OWINとは
OWINは、.NETのOpen Web Interfaceの略です。OWINは、ASP.NET MVCなどのWeb開発フレームワークがWebサーバーと対話する方法を記述する仕様です。OWINの目標は、抽象化レイヤーを導入することにより、WebアプリケーションをWebサーバーから切り離すことです。このような抽象化により、OWINをサポートするすべてのWebサーバーで同じアプリケーションを実行できます。さらに、抽象化レイヤーがアプリケーションをホストする軽量のインフラストラクチャを提供できるため、システム全体が簡素化されます。IISは、Webアプリケーションに豊富な機能セットを提供します。ただし、Webアプリケーションはこれらすべての機能を必要としない場合があります。最小限のHTTP処理機能があれば十分かもしれません。OWIN互換ホストは、このようなホスティング環境をこれらのアプリケーションに提供できます。また、リクエスト処理中に使用されるモジュールのパイプラインを定義できます。OWINパイプラインは、リクエストが通過するOWIN互換コンポーネントのチェーンです。
刀とは?
KatanaはOWIN仕様を使用して構築されたMicrosoftによるコンポーネントのセットです。これらのコンポーネントには、Web API、ASP.NET Identity、SignalRなどがあります。
上記はCodeGuruの記事からの抜粋です:http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm