Image credit : MSDN |
Historically ASP.NET architecture (System.Web.dll) was coupled to a specific web hosting option IIS. To separate this, ASP.NET MVC was released as an independent download.
Then Microsoft built ASP.NET Web API such that it had no dependencies on any of the core framework types found in System.Web.dll. therefore it had no dependency on IIS and could be run in a custom host (console application, windows service etc. )
Then Microsoft built ASP.NET Web API such that it had no dependencies on any of the core framework types found in System.Web.dll. therefore it had no dependency on IIS and could be run in a custom host (console application, windows service etc. )
OWIN (Open Web Interface for .NET)
OWIN decouples the coupling between web server and the application. Inspired by the benefits achieved by Rack in the Ruby community. OWIN has two core components. OWIN is not an implementation, it is just a specification.
Environment dictionary
- This data structure is responsible for storing all of the state necessary for processing an HTTP request and response.
- An OWIN-compatible Web server is responsible for populating the environment dictionary
- It is then the responsibility of the application or framework components to populate or update the dictionary with additional values
- OWIN specification defines a list of core dictionary key value pairs
- Is a function signature which serves as the primary interface between all components in an OWIN application
- Function accepts the environment dictionary as input and returns a Task
- The asynchronous design enables the abstraction to be efficient
Katana cloud optimizes your ASP.NET applications. The Katana project represents the set of OWIN components that, while still open source, are built and released by Microsoft.
You can also go through set of sample Katana projects provided by asp.net.
IAppBuilder
Understanding IAppBuilder abstraction
http://coding.abel.nu/2014/05/whats-this-owin-stuff-about/
IAppBuilder
Understanding IAppBuilder abstraction
http://coding.abel.nu/2014/05/whats-this-owin-stuff-about/
Resources