OWINとKatanaは初めてです。OWINを使用する理由が本当にわかりませんが、は使用できますIIS
。簡単にするために、私の質問は次のとおりです。OWINの学習をスキップしてWebサイトにIISを使用すると何が失われますか?
私はググったが、簡単な説明はありません。そこにいくつかの情報があり、ここで、私はそれを理解することはできませんので、彼らはいくつかの専門用語のフレーズを使用しています。
OWINとKatanaは初めてです。OWINを使用する理由が本当にわかりませんが、は使用できますIIS
。簡単にするために、私の質問は次のとおりです。OWINの学習をスキップしてWebサイトにIISを使用すると何が失われますか?
私はググったが、簡単な説明はありません。そこにいくつかの情報があり、ここで、私はそれを理解することはできませんので、彼らはいくつかの専門用語のフレーズを使用しています。
回答:
asp.net WebApi v2では、OWINパイプラインがデフォルトになります。最終的には、どのasp.netプロジェクトでも標準のパイプラインになります。
私はここに書かれているものよりも上に置くことはできません:http : //www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
「.NET(OWIN)用のオープンWebインターフェイス」セクションでは、OWINの目標を完全に説明しています。
OWINがない場合、asp.netビットはIISがアプリケーションと通信する方法に結合されます。OWINはWebサーバーとフレームワークコンポーネントを抽象化します。つまり、アプリケーションコードはOWINインターフェイスを認識しますが、リクエストを処理しているウェブサーバーは認識しません。
見返りに、アプリケーションは、ホストと、場合によってはプラットフォーム/オペレーティングシステム全体との間でより簡単に移植できます。たとえば、コンソールまたは任意のプロセスでアプリケーションをホストする機能により、Monoは簡単にアプリケーションをホストできます...(Raspberry Pi誰でも)
2番目の側面は、パイプラインとして機能することです。
ウェブサーバーとアプリケーションの間に任意のミドルウェア(および必要な数だけ)を接続できます。
これにより、より多くのモジュール式ソリューションが可能になります。アプリケーションとの間でやり取りされる要求/応答に影響を与える可能性がある再配布可能なミドルウェアを開発できますが、これらのモジュールはアプリケーションコードから分離したままにします。
このモジュラーアプローチの利点を理解するには、OWINで利用可能なnugetパッケージをご覧ください。http://www.nuget.org/packages?q = owin
これらのパッケージの多くは、以前はasp.netのコア機能であり、ミドルウェアとして抽出されていました。
たとえば、さまざまなOAuthプロバイダーを使用してログインするためのサポートを追加すると、インフラストラクチャの問題(ミドルウェア)となり、アプリケーションコードの一部である必要がなくなります。
または、ウェブサイトのすべての画像をかわいい猫の画像に自動的に置き換える場合は、透過的に行うこともできます。
https://github.com/serbrech/Owin.Catify
編集:nugetパッケージとして利用可能になりました:Owin.Catify!
public interface OWIN
{
void ListenHttpCallAndServeWebPage();
}
namespace Microsoft.OWIN
{
public class Katana : OWIN
{
public void ListenHttpCallAndServeWebPage()
{
// listen to a port for HTTP call and serve web page
}
}
}
はい、そうです。OWINはインターフェースで、KatanaはMicrosoftによるOWINインターフェースの実装です。したがって、これらの2つの単語(OWIN / KATANA)を一緒に聞くと、多くの場合、これら2つの用語の違いが混乱します。したがって、KatanaはMicrosoftのOWINインターフェースの実装です。OWINの独自の実装を作成したいBIG-BOSSという名前の別の会社があるとします。彼らはそれを実行して、その実装を「BATANA」と名付け、OWIN / BATANAのようなフレーズを宣伝できます。
だから、なぜOWIN !!!
移動可能な唯一の車両がトラックである国について考えてみましょう。他には何もありません。車両を購入したい場合は、トラックを購入します。まあ、それは以前は良かったですが、人々はそれがトラックを必ずしも必要としないことに気づき始めました、特に彼らが映画を見たり牛乳を買いに行きたいときは、重いトラックを運転することは燃料だけでなくコストもかかる運転にストレスを加える。しかし、はい、彼らが重いものをたくさん運びたいなら、トラックは非常にうまく目的を果たします。
それから、その国の政府は自動車メーカーのための仕様を思いつきました。仕様は次のとおりです。
したがって、これらの仕様に基づいて、誰でもさまざまなニーズに応じて車両を作成でき、それに応じて車両に名前を付けることができます。したがって、セダン、ピックアップトラック、SUV、VANなど、あらゆる種類の車両が市場に登場しました。重いものをいつも運ぶ必要がなく、職場に行くためだけに車が必要な人は、小さなセダンを買うことができます。もう少しパワーが必要なら、誰かがSUVを買うことができます。
上記の例に基づいて、ASP.NET Webアプリケーションは、(トラックのように)負荷の高いSystem.Webアセンブリを使用し、目的がいくつかのファイルを提供することだけである小さなWebアプリケーションを作成したい場合、少しのリクエストでは、その重いSystem.Webアセンブリ(トラック)を使用する必要があります。OWINが表示されます。OWINは、サーバーを定義する一連の仕様(インターフェースと呼ぶことができます)です。その仕様に基づいて、(自動車メーカーのような)誰かが特定の問題ドメイン/アプリケーションのニーズに基づいてさまざまな種類のサーバーを作成できます。マイクロソフトは、Web APIを提供できるのと同じ方法でKatanaという名前のOWINの独自の実装を作成しました。WebAPIは軽量技術であり、本格的なSystem.Webのものが必要ないため、
さて、あなたが尋ねるなら、私はそれが必要ですか'?答えは、「パフォーマンスの必要性によって異なります」です。映画を見に行くのにトラックを運転することを気にしないなら、おそらくあなたはOWINを必要としません。しかし、それを感じたら、軽量のセダン車で街、短距離を走り、映画などを観るのに必要なすべてです。はい、市場で利用可能なOWINの実装を確認できます。KatanaはOWINの実装の1つなので、Katanaが提供するものを確認できます。カタナだけでなく、他の企業が特定のドメインに従ってOWINを実装している場合(たとえば、最新の医療情報をダウンロードする医療機器のサーバーなど)、医師であれば、OWINの実装を確認できます。さらに、特定のニッチを対象としたOWINの独自の実装を自分で作成できます。
Webアプリケーションに関しては、単純なWeb開発者であり、クライアント用のカスタムWebサイトを開発している場合、IISがバランスの取れた方法でサービスを提供するため、OWINのカスタム実装について心配する必要はありません。Web APIプロジェクトを構築する場合、Visual Studio-> New ProjectからKatanaベースのテンプレートをすぐに作成できるため、Katana固有のテクニックを学ぶ以外に何も心配する必要はありません。現在のところ、カタナはASP.NET MVCのIISの必要性を完全に置き換えるには十分に成熟していませんが、将来的にはそうなるでしょう。
次に、独自のOWIN実装を作成する必要があるのはいつですか。
回答:たとえば、バックグラウンドでサーバーとして実行し、ポート番号XXXXをリッスンするWindowsアプリケーションを開発したとします。サーバーは次のようなリクエストの一部のみに応答します。
それで全部です。何もありません。では、なぜこの小さなタスクに完全なIIS Webサーバーが必要なのでしょうか。その場合は、独自のOWIN実装を作成できます。(おそらく、そのためにカタナを使用します)
わかりました。ASP.NETMVC Webサイトを作成する場合、IISを置き換えるオプションがないので、なぜ現時点でKatanaについて知る必要があるのでしょうか。
回答:カタナは、ASP.NET MVC Webサイトをカタナで直接ホストできるように、IISの必要性に取って代わるほど成熟していませんが、カタナはOWINの多くの優れたインターフェースを実装しているため、これらの機能を活用することができます。横に。たとえば、ユーザーがFacebook、Google、Twitterなどを使用してログインできるようにすることは、以前は簡単ではありませんでした。Katanaは(ミドルウェアとして)多くのフックを提供するため、配管コードを記述せずにKatanaに外部のソーシャルメディアベースの認証を簡単に処理させることができます。Katanaを使用することには、他にも多くの利点があり、このテクノロジーの使用を開始するとわかる場合があります。
what is lightweight part, i mean if Katana is compared to IIS, by which means it is lightweight ( say it does not do step#1,2,3 etc.. , but IIS does that.
その答えのより簡単なバージョンは、KatanaがSystem.Webアセンブリと古いASP.NETパイプラインを完全に置き換えようとしているため、柔軟性(より多くのシナリオで使用し、好きな部分のみを使用)とパフォーマンスの両方を提供します。
したがって、誰もがその進化を今見て、それが最終的に完了したときに切り替える準備をする必要があります。
以下は、Microsoftがこの記事に含めなかった詳細を記入するために描いた図です。
OWINは、アプリケーションフレームワークをその上で実行させ、その下にあるすべてのものを忘れさせるような標準です。一方、OWIN自体はさまざまなホストアダプターを使用して、基盤となるWebサーバー(IISおよびその他の多く)と通信できることを確認します。
現在、JEXus Webサーバーの作成者と協力して、OWIN / KatanaとJexusをブリッジするホストアダプターを作成する方法を調査しています。OWINは柔軟性が高く、高度にカスタマイズ可能であることを知って本当に嬉しく思います。
リファレンス:http : //blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/
System.Web
。
IISを使用できるのに、なぜOWINを使用する必要があるのですか?
OWINは、Webサーバーを使用しているフレームワークから切り離すように設計されています。これにより、アプリケーションを軽量化し、ミキシングフレームワークとサーバーに移植することができます。
Katanaは、MicrosoftによるOWINコンポーネントの実装です。
マイクロソフトはここ数年、計画の進捗に応じてWebツールの俊敏性と応答性を高めています。例として、ASP.Net MVCおよびASP.Net Web APIの開発。彼らはSystem.Web dllに依存していません。両方の開発の利点は、両方の開発修正をタイムリーに提供でき、サイクルがかつてないほど高速であることです。また、開発者はこれらのアプリケーションをカスタムOWINホストまたはOWIN実装のリファレンスであるKatanaにデプロイできるようになりました。
結局のところ、何がポイントなのでしょうか?
マイクロソフトは、IISをベースにした軽量のOWINベースのWebホストである「ヘリオス」と呼ばれるプロジェクトをリリースしました。目標は、OWIN仕様を実装するWebホスト上で独立して実行、使用、インストール、管理できるいくつかの独立した小さなコンポーネントを提供することにより、ASP.NET / IIS関係を回避することです。
中心的な理由の1つは、パフォーマンス要因です。Heliosは、標準のASP.Netアプリケーションよりも2〜3倍高いスループットを実現できます。メモリ消費量に関しては、HeliosはSystem.Web dllよりもはるかに優れています。採用されたベンチマークでは、Heliosアーキテクチャにより、サンプルアプリケーションは50000の同時リクエストを達成でき、標準のASP.Netアプリケーションと比較してオーバーヘッドが約1 GB少なくなりました。
OWINは、Webアプリケーションとホスティングプラットフォーム間の抽象化です。IISに関連付けられていないOWINを使用してWebアプリケーションを作成する場合は、必要に応じて別のホストを使用できます。
IISではなくOWINを使用する理由を尋ねましたが、これらは相互に代わるものではありません。OWINはIISとアプリケーションの間にあり、アプリケーションを書き直すことなくIISを切り替えることができます。
このページをチェックすることもできますhttps://github.com/Bikeman868/OwinFramework/wiki/OWIN