[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>ASP.NET]] * 目次 [#ob1efb64] #contents *概要 [#g0f9dd7b] OWIN(Open Web Interface for .NET) -.NETのWebサーバとWebアプリケーション接続するためのインタフェース。 -新しい HTTP Server のプログラミング抽象化レイヤーを定義する。 -OWIN 統合により、One ASP.NET の Pluggable を促進する。 -OWINのリファレンス実装は「Katanaプロジェクト」。 **経緯 [#s2fe2e19] -昨今、色々と技術的な変化が早いため、 --MVC 1-5 は.NET Frameworkのサイクルから外れ、 --また、System.Webからの脱却が必要になってきてOWINが登場した。 -OWINが達成したこと。 --System.Webから脱却し、性能の向上を可能にした。 --.NET Frameworkのサイクルから外れた早いリリースを可能にした。 **主要なデータ構造 [#z3da880d] ***environment dictionary [#ac5fcdac] -HTTPContextから脱却し、環境を保持する environment dictionary。 -HTTP request and response を処理するのに必要なデータは保持される。 IDictionary<string, object> ***application delegate [#z5026963] コンポーネントの間は下記の function signature で呼ばれる。 Func<IDictionary<string, object>, Task>; **[[OWIN]]ミドルウェア [#c666e4bd] 以下の様な、[[OWIN]]ミドルウェアが存在する。 ***[[ASP.NET Identity]] [#x8cab528] ***[[ASP.NET SignalR]] [#x8cab528] ***[[ASP.NET Web API>ASP.NET Web API#rabd29db]] [#n4d2e2af] ***[[OWIN]]ミドルウェア作成 [#o8b46ad1] この「ミドルウェア」を自作すればパイプライン上で挙動をカスタマイズできる。 -neue cc - OWINのパイプラインとMiddleware作成ガイド~ http://neue.cc/2014/01/06_442.html -neue cc - OWINの仕組みとOWIN上のフレームワーク(ミドルウェア)の作り方~ http://neue.cc/2014/05/13_473.html -ログイン処理を行うOWINミドルウェアの作成 - Qiita~ http://qiita.com/ken200/items/fea146f0bad9d21fe302 *[[OWIN化手順]] [#q6af4660] シンプルに >「セルフホストやOWINミドルウェアを使用するために、パイプラインをOWIN化すること。」 と捉えると良い。 手順については「[[コチラ>OWIN化手順]]」を参照のこと。 *OWIN is dead ? [#o8448c24] 以下に「これからは ASP.NET 5。(死に切ってはいないけれど) OWIN is dead!!」とある。 -ASP.NET 5はどうしてOWIN上に乗らなかったのか - xin9le.net~ http://blog.xin9le.net/entry/2015/01/18/161631 今では完全に OWIN と Katana Project は止まっているらしい。~ (ASP.NET 5は、現在は[[ASP.NET Core]]と名称が変更されている。) **補足 [#c41ff7e1] 上記の文字列の意味が長々明確ではありませんでしたが、 -Katana Project が止まって、 -Katana Project 所有の仕様であるOWINも止まった ということだったようでしたが、その後、OWIN の仕様は、~ ASP.NET 5、[[ASP.NET Core]]と引き継がれて生きているようです。 -[[ASP.NET Core]]は、OWINをサポートしています。 -[[ASP.NET Core]]アプリケーションとミドルウェアは、~ OWINベースのアプリケーション、サーバ、ミドルウェアと相互運用できます。 ただし、OWINの上で[[ASP.NET Core]]が動くのではなくて、~ [[ASP.NET Core]]自体がOWIN互換レイヤーを実装することでサポートしたようです。 **参考 [#y27ba0a2] -Getting Started with OWIN and Katana | The ASP.NET Site~ https://www.asp.net/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana -ASP.NET 5はどうしてOWIN上に乗らなかったのか - xin9le.net~ http://blog.xin9le.net/entry/2015/01/18/161631 -Open Web Interface for .NET (OWIN) | Microsoft Docs~ https://docs.microsoft.com/en-us/aspnet/core/fundamentals/owin *参考 [#o5fab226] -OWIN - Open Web Interface for .NET を使う — Kyrt Blog~ http://kyrt.in/2013/12/17/owin_azure_cache_session_middleware.html -【.NET定期勉強会@Sansan完全レポート】第3回~ OWINって何?Microsoft MVPに聞いてみよう!(その1)~ | エンジニア勉強会 | Sansan株式会社 - クラウド名刺管理~ http://jp.corp-sansan.com/news/2014/140929_4597.html --OWIN って何?~ http://www.slideshare.net/miso_desu/owin-34791501 ---- Tags: [[:.NET開発]]