Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
OWIN(Open Web Interface for .NET)
- .NETのWebサーバとWebアプリケーション接続するためのインタフェース。
- 新しい HTTP Server のプログラミング抽象化レイヤーを定義する。
- OWIN 統合により、One ASP.NET の Pluggable を促進する。
- OWINのリファレンス実装は「Katanaプロジェクト」。
経緯 †
- 昨今、色々と技術的な変化が早いため、
- MVC 1-5 は.NET Frameworkのサイクルから外れ、
- また、System.Webからの脱却が必要になってきてOWINが登場した。
- OWINが達成したこと。
- System.Webから脱却し、性能の向上を可能にした。
- .NET Frameworkのサイクルから外れた早いリリースを可能にした。
主要なデータ構造 †
environment dictionary †
- HTTPContextから脱却し、環境を保持する environment dictionary。
- HTTP request and response を処理するのに必要なデータは保持される。
IDictionary<string, object>
application delegate †
コンポーネントの間は下記の function signature で呼ばれる。
Func<IDictionary<string, object>, Task>;
Startup.cs †
OWINのパイプラインを使用できる。
- OWINは「ミドルウェア」をつなげたパイプラインとして全体を処理する。
この「ミドルウェア」を自作すればパイプライン処理の挙動をカスタマイズできる。
- Microsoft.Owin.Host.SystemWeb?を使用すると、
- System.WebのパイプラインをOWINのパイプラインに流すことができる。
- これにより、OWINのミドルウェアをASP.NET Web Formsや、MVC 5でも使用できる。
OWIN化手順 †
参考 †
OWIN is dead ? †
以下に「これからは ASP.NET 5。(死に切ってはいないけれど) OWIN is dead!!」とある。
今では完全に OWIN と Katana Project は止まっているらしい。
# ASP.NET 5は、現在はASP.NET Coreと名称が変更されている。
参考 †