カタナとオーウィンを簡単な言葉と使い方で説明するには?


337

OWINとKatanaのプロジェクトに関する多くの記事を読みましたが、全体像を把握することができませんでした。

ASP.NETを使用する通常のWeb開発者向け:

  1. OWINとは正確に何で、どのような問題を解決しますか(簡単な言葉で)。IISとの関係は何ですか?
  2. OWINはIISを置き換えますか?そうでない場合、どのような状況でOWINが最適ですか?
  3. OWINは毎日の作業プロジェクトでどのように役立ちますか?
  4. OWINは自己改善プロジェクトでどのように役立ちますか?

いくつかの箇条書きが本当に正しくないことを考慮して、受け入れられた回答を変更することを検討するかもしれません-誤解を招くものです。
AdzoTuzović14/07/

3
ASP.netに関する私の本は、OWINを介してIdentityとUserManagerクラスを実装することを提案していますが、私は本当にそのポイントを理解していません。それは私を完全に混乱させてしまいました...
ルーク

回答:


409

上記のコメントに関して、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フレームワークをうまく適合させています。

  • Web API
  • 信号R

ASP.NET MVCとWebフォームは引き続きSystem.Webを介して排他的に実行されており、長期的にはそれらも分離する計画があります。

一方、IISはWebサーバーにとって優れたリソースのあるホストです。IISを使用したASP.NET全体のパフォーマンスの問題は、深い原因System.Webのみにあります。最近まで、どのようにWebサーバーをホストするかを決定するとき、2つのオプションがありました。

  • IIS
  • セルフホスト

したがって、パフォーマンスが必要な場合は、セルフホストオプションを選択します。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の発表をご覧ください。


2
@ebramtharwat今1年後、ヘリオスは物事のようには見えません
Andrew Savinykh

1
Katana v3が最後のメジャーリリースになる可能性が最も高いとおっしゃっていましたが、今後、Katanaの代わりにどのフレームワークを使用しますか?
Vincent

2
Katanaの機能はASP.NET 5に統合されています。Katanaは、下位互換性のために引き続き存在します。
AdzoTuzović2015

2
@AdmirTuzović:すばらしい答え。2016年5月以降に追加する更新はありますか?
Igby Largeman、2018年

2
その後の編集を伴う最初の回答は、遷移を非常によく説明しています。努力をありがとう。
Sang Suantak、2018年

71

OWINを自分で定義する必要がある場合、それは次のようになります。「RubyおよびNode.js Web開発コミュニティからの最高のアイデア、.NETへの移行」

しかし、これはASP.NET開発者には役立ちません。私自身の定義は、次のようなものになります。

OWINは、.NET WebサーバーとWebアプリケーション間の標準インターフェースを定義します。OWINインターフェースの目標は、サーバーとアプリケーションを分離することです。あなたが提起した質問に答える必要がある場合、ここにそれがあります:

  1. OWINはインターフェース仕様です。IISからWebアプリケーションを分離します。

  2. 既成のコンポーネント(Katanaとは何か)を使用している場合、アプリケーション機能の一部は、古いASP.NETに比べて実装がはるかに簡単です。サードパーティのIDプロバイダー(Facebook、Twitter)による認証は、この一例です。

  3. OWINは基本的に、Web開発コミュニティで実証済みのベストプラクティスのコレクションです。これは、拡張性に非常にオープンなWebアプリを実装する方法を示しています。各Web開発者は常に新しいテクノロジーの最先端にいる必要があるため、これは.NETだけでなく、Web開発コミュニティ全体で最新の状態を維持する1つの方法です。OWINを学ぶ場合、node.js用のExpressやRuby用のRackなどの他のWeb開発フレームワークを学ぶ方がはるかに簡単です。

1
この記事は、OWIN / katanaによって解決された歴史的な問題のアイデアを得るのにも役立ちます:asp.net/aspnet/overview/owin-and-katana/…。現在、これらのフレームワークのみがOWINホストでサポートされています:owin.org/#projects。アプリがこれらのアプリケーションフレームワークのいずれかを使用している場合、これはOWINでホストできます。
Praburaj 2013

owinhost.exeを使用しているときに、ブラウザーからの一連の着信要求を、ブラウザーの応答をレンダリングするポイントにここに投稿できますか?このトピックのドキュメントは見つかりませんでした。
サラバナン2014年

2
ポイント1と2は誤解を招くものであり、OWINはそれ自体で何かを置き換えることはできません。ポイント4と同様に、これは実装を必要とする単なる仕様であり、これまでのところMicrosoftによるリファレンス実装はKatanaとHeliosです。
Mani Gandham 2014

RubyとNode.jsのWeb開発コミュニティからの最高のアイデアが.NETに登場します...それらのいくつかをリストアップできます\
Lakshay

1
ミドルウェア。アプリケーションをホスティング環境から切り離して、それらをプラグ可能にします。
スラボ2015年

59

実用的な観点からカバーしていきます。

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通信の仕組みに関する知識が向上します。

KatanaとOWINについてもっと理解したい場合は、よく読んでください。


6
正解です。接線レーンをたどるのではなく、投稿された質問に直接回答していただきありがとうございます。
Dav、2015年

ホスティングに常にMicrosoft IIS対応サーバーを使用するとどうなりますか?新しいWebApi2テンプレートではOWINがデフォルトであるようです。IISのみ/常にホストする予定がある場合は、参照として削除する必要がありますか?
TechTurtle

@TechTurtle Hi Tech、別の質問として投稿することをお勧めします。
Matas Vaitkevicius

非常に明確な説明。有益な情報をありがとう
Uttam

9

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.