Open Web Interface for .NET (OWIN)



Open Web Interface for .NET (OWIN)

0 0


grahamkane.github.io


On Github grahamkane / grahamkane.github.io

Open Web Interface for .NET (OWIN)

Inspired by a recent talk from DDDEA

OWIN

  • Defines a standard way of communicating between hosts, servers and web frameworks
  • Found in the Owin.* namespace

Katana

  • Microsoft's implementation of components to help build and host OWIN-based applications
  • Found in the Microsoft.Owin.* namespace

OWIN Format

1000 words (part 2)

1000 words (part 3)

Middleware Demo

Show me the code!

Why is it important?

  • ASP.NET MVC vNext adds support for OWIN
  • Web API already supports OWIN, will get merged with MVC in vNext
  • Create lightweight, modular, portable apps using only parts of the .NET Framework you need (e.g. no more System.Web)
  • An xcopy-able web app (Roslyn, Katana, Core CLR, "K" runtime)
  • IIS major versions are tied to OS (IIS 8)
  • Web sockets are only supported in IIS 8 / Win 8
  • Can pick-and-mix components and frameworks and have them play nicely together (self-host)
  • The hosting environment gets out of the way (Linux / Mono)
  • Testability

Real-world Use Case: Installers

  • Installing IIS is difficult
  • Deployment Image Management Service (DISM.exe) vs Package Manager (pkgmgr.exe)
  • Requires elevated permissions
  • requires a reboot mid-way through installation process
  • Difficult to maintain