Open Web Interface for .NET
May 24, 2015
Open Web Interface for .NET
Your Presenter
Shravan Kumar Kasagoni
Software Engineer @ Thomson Reuters
Microsoft MVP – ASP.NET / IIS | MCP
http://theshravan.net | @techieshravan
Agenda
Evolution of ASP.NET
Evolution of Web Frameworks
Introduction to OWIN
Introduction to Katana
Evolution of ASP.NET
ASP.NET
ASP.NET WEB FORMS
ASP.NET MVC
ASP.NET WEB API
SignalR
Evolution of Web Frameworks
Other .NET Web Frameworks
Nancy
FubuMVC
Simple.Web
Inspiration for OWIN
Ruby’s Rack
Python’s WSGI
Express.js for node
Introduction to OWIN
What is OWIN?
OWIN stands for Open Web Interface for .NET
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.
Introduction to Katana
What is Katana?
Katana is Microsoft’s OWIN implementation
Katana is a collection of projects for supporting OWIN with various Microsoft components.
Standard ASP.NET Web Application Hosting
Web Application
ASP.NET
IIS
Katana Architecture
Web Application
MIDDLEWARE
SERVER
HOST
Host
Host Responsibilities
Managing the underlying process
Orchestrating the workflowSelection of a server
Construction of an OWIN pipeline (Through which requests will be handled)
Hosting options for Katana-based applications
IIS/ASP.NETEnabled by installing the Microsoft.AspNet.Host.SystemWeb NuGet package
OwinHost.exeA pre-built executable
Custom Host
Server
Server Responsibilities
Open a network socket, listen for requests, and send them through the pipeline of OWIN components specified by the user
OWIN pipeline is specified in the application developer’s Startup class
Server options for Katana-based applications
IISMicrosoft.Owin.Host.SystemWeb NuGet package
Microsoft.Owin.Host.HttpListener
Middleware
Middleware
OWIN components are known as middleware
Implementation Of OWIN Components
OWIN middleware component needs to implement the OWIN application delegate
Func<IDictionary<string, object>, Task>
Func<IDictionary<string, object>, Task>
IDictionary<string, object>Data structure is responsible for storing all of the state necessary for processing an HTTP request and response, as well as any relevant server state.
Demo Time
Resources
http://asp.net
http://katanaproject.codeplex.com
http://owin.org
Thank You