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>;
OWIN is dead ? †
以下に「これからは ASP.NET 5。(死に切ってはいないけれど) OWIN is dead!!」とある。
今では完全に OWIN と Katana Project は止まっているらしい。
(ASP.NET 5は、現在はASP.NET Coreと名称が変更されている。)
補足 †
上記の文字列の意味が長々明確ではありませんでしたが、
- 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互換レイヤーを実装することでサポートしたようです。
参考 †
参考 †