OWIN

 OWIN

Neuerfindung des Microsoft Web Stacks

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

34676b6e108d2752c33c33bf2f47972c?s=128

Robert Muehsig

June 15, 2014
Tweet

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