Open Web Interface for .NET
   HOME

TheInfoList



OR:

OWIN (Open Web Interface for .NET) is a standard for an interface between .NET Web applications and Web servers. It is a community-owned open-source project. Prior to OWIN, Microsoft's
ASP.NET ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stan ...
technology was designed on top of IIS, and Web applications could not easily be run on another Web server (although note that despite this the Mono community developed several ASP.NET compatible Web servers, such as XSP). OWIN aims to decouple the relationship between ASP.NET applications and IIS by defining a standard interface. Developers of Web servers can be sure that, if they implement OWIN correctly, ASP.NET applications will run on their server. Similarly, new
Web framework A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and ...
s could be developed as an alternative to ASP.NET. As long as they target OWIN, they will run on any OWIN compatible Web server, including IIS. In this regard, OWIN aims to do for .NET what
Java Servlet A Jakarta Servlet (formerly Java Servlet) is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web application ...
and Servlet containers do for the
JVM A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
. Project Katana is a set of OWIN components built by Microsoft.


OWIN as middleware

In addition to decoupling Web frameworks and Web servers, OWIN allows chaining together
middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
into a pipeline. A Web framework can interact with OWIN without knowing whether it is interacting directly with the underlying web server, or with one or more layers of middleware (each implementing OWIN) on top of the Web server. This allows infrastructure concerns, such as
authentication Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicati ...
, to be split out into separate modules. This is desirable as it decouples them from the application's own code, and makes them reusable across applications. In Project Katana, Microsoft has made into OWIN modules several ASP.NET features that were previously part of the core ASP.NET framework. This allows them to be reused in other Web frameworks, and also ensures a cleaner separation from the application using them.


See also

*
ASP.NET Core ASP.NET Core is a free and open-source web framework and successor to ASP.NET, developed by Microsoft. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET. However, ASP.NET Core version 3 on ...
*
HTTP handler An ASP.NET HTTP handler is a process that runs in response to a request made to an ASP.NET Web application. The most common handler is the ASP.NET page handler that processes .aspx files. When users request an .aspx file, the request is processed ...


References


External links


Official OWIN website

Katana Project
at
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...

Microsoft's overview of Project Katana
{{Web interfaces Open source projects