Owin is a Standard, whereas Katana – and ASP.NET Core are implementations of Owin.
Owin stands for “Open Web INterface”.
System.Web
, which has issues including:* Making ASP.NET more nimble has been in the works for years:
It's that last part – the attractiveness of the ability to host services in a variety of different lightweight hosts – that surfaced another problem: lots of different hosts are more difficult to start/stop/manage idependently, than one general management system. Like IIS. Just wasn't a realistic roadmap.
What was needed was a single hosting abstraction that would enable a developer to compose an application from a variety of different components and frameworks, and then run that application on a supporting host. Whether IIS, or not.
Hence OWIN.
To be portable, the resulting abstraction is almost comically rudimentary.
All it consists of of are two core elements:
* An IDictionary<string,object>
environment dictionary.
* Func<IDictionary<string, object>, Task>;
, the application delegate.
This simplicity of the OWIN design has several implications for developers: