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

OWIN

 OWIN

Neuerfindung des Microsoft Web Stacks

Presentation was hold in Nurnberg, Germany at the Developer Week 2014 (DWX14)

Robert Muehsig

June 15, 2014
Tweet

More Decks by Robert Muehsig

Other Decks in Programming

Transcript

  1. OWIN Neuerfindung des Microsoft Web Stacks #dwx14 #dwx14 1

  2. Hi! Robert Mühsig @robert0muehsig CodeInside.eu Nerd & ASP.NET MVP OneOffixx

    AG Schweiz 2
  3. OWIN? 3 Fancy Akronym?

  4. Es ist eine Spezifikation. 4

  5. Aber… für was und warum? 5

  6. Open Web Interface for .NET 6

  7. Zeitreise ins Jahr 2002 7

  8. 8

  9. ASP.NET Geschichtsstunde WebForms Zielgruppe: ASP & WinForms Devs „One-Size-Fits-All“ Framework

    Enge Bindung an den IIS Testing: Meh. 9
  10. In 2007… ASP.NET MVC.

  11. ASP.NET Weiterentwicklungen „Seperation of Concerns“ Mehr Kontrolle Bessere Testbarkeit „Out-Of-Band“

    Releases 11
  12. System.Web.dll „We fix one bug and open seven new ones“

    & Performance  ASP.NET = System.Web.dll 12
  13. Ein Blick auf andere Plattformen 13

  14. Andere Plattformen Ruby Node.js Phyton Gemeinsamkeit: Modular und Leichtgewichtig 14

  15. OWIN Inspiration Diese Frameworks haben eine Schnittstelle zwischen Server &

    Frameworks 15
  16. Ruby „Rack“ 16

  17. Ruby „Rack“ 17 app = lambda do |env| body =

    "Hello, World!" [200, {"Content-Type" => "text/plain", "Content-Length" => body.length.to_s}, [body]] end run app
  18. Ruby „Rack“ 18 Server Passenger for nginx & Apache WEBrick

    … Frameworks Ruby on Rails Sinatra …
  19. Ruby „Rack“ 19 Middleware Logging Caching … Pipeline Pattern

  20. Node.js 20 // Load the http module to create an

    http server. var http = require('http'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.end("Hello World\n"); }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000); // Put a friendly message on the terminal console.log("Server running at http://127.0.0.1:8000/");
  21. ☑ Motivation 21

  22. OWIN Community getrieben Version 1.0 22 using AppFunc = Func<

    IDictionary<string, object>, // Environment Task>; // Done
  23. OWIN – Environment Dictionary Key Type owin.RequestScheme String owin.RequestMethod String

    owin.RequestPath String owin.RequestBody Stream owin.RequestHeaders IDictionary<string, string[]> owin.ResponseStatusCode Int owin.ResponseHeaders IDictionary<string, string[]> owin.ResponseBody Stream 23
  24. OWIN 24 Host • IIS • OWIN Host • ?

    (Windows Service …)
  25. OWIN 25 Server • SystemWeb • HttpListener • Nowin Host

  26. OWIN 26 Middleware • Web API • Auth • SignalR

    • NancyFx • SimpleWeb • … Server Host
  27. OWIN 27 Application • Custom App Code Middleware Server Host

  28. Katana Microsofts OWIN Implementierung Open Source  28

  29. Katana - Modules - Auth - Static File - CORS

    - IIS & HttpListener Owin Kompatibilität - OwinHost.exe 29
  30. DEMO 30

  31. Möglichkeiten über Möglichkeiten 31

  32. Beispiele 32 WebApp mit SelfHosting Möglichkeiten SelfHosting im Unit-Testing Kombieren

    verschiedener Frameworks …
  33. OWIN WebApps on Mono 33 Nicht ausprobiert, aber sollte gehen.

    (Nowin sollte auch da gehen…) 
  34. OWIN & ASP.NET vNext 34

  35. Wie wird das umgesetzt? 35 Zielsetzung: Alle Szenarien die mit

    Katana möglich sind, sollten auch in vNext unterstützt werden. Problemstellung heute: „typeless“-OWIN vs. Katanas OWIN Implementierungen Zusammenarbeit mit OWIN Spec Group
  36. Zusammenfassung OWIN: Spec Katana: Microsoft´s OWIN Implementierung Wer .NET WebApps

    baut sollte OWIN im Blick haben. 36