Top Banner
Open Web Interface for .NET
28

Open Web Interface for .Net

May 24, 2015

Download

Technology

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Open Web Interface for .Net

Open Web Interface for .NET

Page 2: Open Web Interface for .Net

Your Presenter

Shravan Kumar Kasagoni

Software Engineer @ Thomson Reuters

Microsoft MVP – ASP.NET / IIS | MCP

http://theshravan.net | @techieshravan

Page 3: Open Web Interface for .Net

Agenda

Evolution of ASP.NET

Evolution of Web Frameworks

Introduction to OWIN

Introduction to Katana

Page 4: Open Web Interface for .Net

Evolution of ASP.NET

Page 5: Open Web Interface for .Net

ASP.NET

ASP.NET WEB FORMS

ASP.NET MVC

ASP.NET WEB API

SignalR

Page 6: Open Web Interface for .Net

Evolution of Web Frameworks

Page 7: Open Web Interface for .Net

Other .NET Web Frameworks

Nancy

FubuMVC

Simple.Web

Page 8: Open Web Interface for .Net

Inspiration for OWIN

Ruby’s Rack

Python’s WSGI

Express.js for node

Page 9: Open Web Interface for .Net

Introduction to OWIN

Page 10: Open Web Interface for .Net

What is OWIN?

OWIN stands for Open Web Interface for .NET

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

Page 11: Open Web Interface for .Net

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.

Page 12: Open Web Interface for .Net

Introduction to Katana

Page 13: Open Web Interface for .Net

What is Katana?

Katana is Microsoft’s OWIN implementation

Katana is a collection of projects for supporting OWIN with various Microsoft components.

Page 14: Open Web Interface for .Net

Standard ASP.NET Web Application Hosting

Web Application

ASP.NET

IIS

Page 15: Open Web Interface for .Net

Katana Architecture

Web Application

MIDDLEWARE

SERVER

HOST

Page 16: Open Web Interface for .Net

Host

Page 17: Open Web Interface for .Net

Host Responsibilities

Managing the underlying process

Orchestrating the workflowSelection of a server

Construction of an OWIN pipeline (Through which requests will be handled)

Page 18: Open Web Interface for .Net

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

Page 19: Open Web Interface for .Net

Server

Page 20: Open Web Interface for .Net

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

Page 21: Open Web Interface for .Net

Server options for Katana-based applications

IISMicrosoft.Owin.Host.SystemWeb NuGet package

Microsoft.Owin.Host.HttpListener

Page 22: Open Web Interface for .Net

Middleware

Page 23: Open Web Interface for .Net

Middleware

OWIN components are known as middleware

Page 24: Open Web Interface for .Net

Implementation Of OWIN Components

OWIN middleware component needs to implement the OWIN application delegate

Func<IDictionary<string, object>, Task>

Page 25: Open Web Interface for .Net

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.

Page 26: Open Web Interface for .Net

Demo Time

Page 27: Open Web Interface for .Net

Resources

http://asp.net

http://katanaproject.codeplex.com

http://owin.org

Page 28: Open Web Interface for .Net

Thank You