Katana is set of components or building and running Web Applications on Common hosting abstractions. OWIN is specification around this abstraction
OWIN defines a standard interface between .NET web servers and web applications. The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and, by being an open standard, stimulate the open source ecosystem of .NET web development tools.
Katana – OWIN implementations for Microsoft servers and frameworks
Prior to OWIN, when you are building ASP.NET application, you are inheritedly bound to IIS due to the heavy dependency on System.Web assembly.
System.Web is something that exist ever since ASP (non .NET version) and internally contains many things that you might not even need (such as Web Forms or URL Authorization), which by the default run on every request, thus consuming the resources and making ASP.NET applications in general lot slower than it’s counterparts at i.e. Node.js.
So OWIN itself does not have any tools, libraries or anything else. It is just a specification.
Katana on the other hand, is fully developed framework made to make a bridge between current ASP.NET frameworks and OWIN specification. At the moment, Katana has successfully adapted the following ASP.NET frameworks to OWIN:
ASP.NET MVC and Web Forms are still running exclusively via System.Web, and in the long run there is a plan to decouple those as well.
On the other hand, IIS is good, resourceful host for web servers. Entire ASP.NET performance issue with using IIS has deep roots in System.Web only. Up until the recent time, when deciding how will you host your web server, you had two options:
So if you wanted a performance, you’d go for self-host option. If you wanted a lot of out-of-the-box features that IIS provides, you’d go for IIS but you’d loose on performance.
Katana – what does it stand for