Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OWIN - Oh my... what´s that and why should I care?

OWIN - Oh my... what´s that and why should I care?

Presenation hold at WebNetConf.eu in October 2012 Italy:
Learn more about the OWIN Spec, the development community around it and what frameworks are using it. In this talk I will give you a overview of the current state of OWIN, the idea behind it, the relationship with other Web Framework Stacks, implementations of OWIN in famous frameworks like NancyFx or SignalR and where you can host "OWIN-Apps".


Robert Muehsig

October 20, 2012

More Decks by Robert Muehsig

Other Decks in Programming


  1. OWIN Oh my... what´s that and why should I care?

    Robert Muehsig @robert0muehsig
  2. Thanks to the sponsors

  3. Who am I? Robert Muehsig @robert0muehsig http://code-inside.de/blog-in

  4. Who am I? <3 HTTP, ASP.NET & the Web ASP.NET

  5. Who am I? Working in Switzerland @ OneOffixx AG

  6. Who am I? Former Employer T-Systems Multimedia Solutions GmbH in

    Dresden, Germany* *Moved in August to Switzerland
  7. What is OWIN? Open Web Interface for .NET

  8. What is OWIN? A Spec!

  9. But for what?

  10. Once upon a time

  11. Masterplan one big framework to rule them all ASP.NET was

    born in 2002
  12. <insert lord of the ring gag />

  13. new frameworks appear

  14. Lightweight & Modular New Masterplan

  15. Inspiration for OWIN Ruby with Rack Node.js Phyton WSGI

  16. Inspiration for OWIN All Frameworks have an „Interface“ between WebServer

    & WebFramework
  17. Ruby «Rack» Rack defines an Interface Implemented by different Hosts:

    WEBrick Mongrel Passenger for nginx & Apache …
  18. Ruby «Rack» Rack defines an Interface Implemented by different Frameworks:

    Rails Sinatra …
  19. Ruby «Rack» Rack defines an Interface Supports Middleware: Logging Caching

    … Pipeline Pattern!
  20. State of OWIN

  21. OWIN Reached V 1.0 in the last week!

  22. History 14 Versions Organized via the Discussion Google Group

  23. Current state Incompatible NuGet Packages Not working Samples Not up-to-date

    Blogposts 
  24. Welcome to the Bleeding Edge

  25. «Components»

  26. OWIN as a Spec

  27. OWIN as an Assembly *and NuGet Package

  28. Running just OWIN  Might be look like this:

  29. OWINs best Friend Hello, Gate! Helper on Top of OWIN

  30. OWIN Hosts IIS HttpDefaultListener Firefly Mono Katana*

  31. OWIN Frameworks ASP.NET NancyFx SignalR WebApi FubuMVC …

  32. «Katana Project» - the MS Glue Provide Adapters for: Microsoft

    Frameworks Microsoft Hosts Non-MS-Frameworks like NancyFx *NancyFx will support OWIN nativly
  33. «Katana Project» - the MS Glue «Tooling» – Host for

    OWIN Hosts
  34. Getting started with OWIN Download Katana Project //codeplex Download Katana.exe

    via Chocolatey
  35. Chocolatey? Apt-Get, but for Windows based on NuGet

  36. Chocolatey! @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new- object net.webclient).DownloadString('http://bit.ly/psChocInstall'))"

    && SET PATH=%PATH%;%systemdrive%\chocolatey\bin cinst Katana
  37. «Time for VS»

  38. //Empty WebApp Sample… ASP.NET

  39. //Katana Samples ASP.NET, WebApi, WebSockets

  40. //ConsoleNancySignalR <Guess what>

  41. Middleware… so easy: private static Func<IDictionary<string, object>, Task> LogRequests(Func<IDictionary<string, object>,

    Task> next) { return env => { var output = Dict.Get(env, "host.TraceOutput", () => Console.Out); output.WriteLine( "{0} {1}{2} {3}", env["owin.RequestMethod"], env["owin.RequestPathBase"], env["owin.RequestPath"], env["owin.RequestQueryString"]); return next(env); }; }
  42. Next steps?

  43. Education! (.NET WebDev) People should know OWIN

  44. Why is it cool?

  45. None
  46. Compose to this:

  47. Resources: Owin.org WheresLou.com Katanaproject.codeplex.com

  48. Please rate this session Scan the code, go online, rate

    this session