Introduction to OWIN and Katana



All the ASP.NET web applications using System.Web assembly to get ASP.NET functionality. The System.Web assembly provides a rich set of functionality to build a web applications. However, many times you may use only a small portion of this functionality. This is unnecessary and resource consuming. Moreover, System.Web is tightly with IIS. That means your ASP.NET applications can run only on IIS.IIS provides a rich set of features to the web applications. However, web applications may not need all these features. It might be sufficient for them to have minimal HTTP processing capabilities. OWIN compatible host can provide such a hosting environment to these applications.

What is OWIN ?

OWIN actually a acronym and it is stands for Open Web Interface for .NET . According to Owin.Org

OWIN defines a standard interface between .NET web servers and web applications.

This definition gives you a high level idea but it doesn’t tell us what it is.

OWIN actually just a specification, that define how you can abstract a web server in a very efficient way. This abstraction makes possible to build web applications at don’t care about how they will be hosted. Such an abstraction enables you to run the same application on all the web servers that support OWIN.

What is Katana ?

Katana is the Microsoft implementation of the OWIN specification. It is an open-source project hosted on Codeplex. Project Katana is not a by the book implementation. The peoples in the Microsoft have implemented OWIN specification but also added some additional features like authentication. The project Katana is already in some of the features we used to build ASP.NET application today.

Create a ASP.NET MVC application with authentication (Here individual user account). You can see the OWIN specification in package config.


Architecture of a Katana based application

Architecture of a Katana based application

Host: The process that runs the application and can be anything from IIS or a standalone executable, to your own custom program.There are three options for hosting applications based on Katana:
Custom host

Server: Responsible for binding to a TCP port, constructing the environment dictionary and processing requests through an OWIN pipeline.

Middleware: The middleware layer indicates a set of components built using OWIN specifications. These components can be larger frameworks such as Web API or specialized components such as ASP.NET Identity or SignalR.

Application: This application is used by the end users. It could be a ASP.NET , Windows based application or even a console application.


The following two tabs change content below.

Tom Mohan

Tom Mohan is a technologist who loves to code and build. He enjoys working on Microsoft Technologies. Tom specializes in ASP.NET MVC, Web API , Azure, C# ,WPF, SQL etc and holds a Bachelor engineering degree in Computer Science. Certification : MCSD , MCTS

Latest posts by Tom Mohan (see all)