Jan Hentschel Microsoft MVP Microsoft Azure
jan.hentschel@studentpartners.de
@Horizon_Net
API Services
Die perfekte Kombination aus Microsoft Azure
und ASP.NET Web API
• HTTP Services
• HTTP vs REST
• Web API
• Zusammenfassung und FAQ
Agenda
Alice Wie läuft es mit dem aktuellen App-Projekt?
Bob Super! Unsere Datenbank und unsere App spielen super zusammen.
Alice Schön zu hören. Wir wollen die App jetzt auch auf anderen Plattformen
bereitstellen.
Bob …
Alice Gibt es ein Problem?
Bob Aber dann müssen wir die ganze Logik ja nochmal schreiben!
…
Es war einmal …
App Layer
Data Layer
Typische Architektur
Typische Architektur
Und was nun?
Warum nicht eine Service Layer nutzen?
App Layer
Service Layer
Data Layer
Bessere Architektur
Bessere Architektur
• Setzen im Gegensatz zu SOAP direkt auf dem HTTP-Protokoll auf
• Unterstützen dadurch typische Persistenzoperationen
• Lesen = GET
• Schreiben = POST
• Löschen = DELETE
• Updaten = PUT
• Nutzen typischerweise JSON und XML als
Datenaustauschformate
HTTP Services
• Roy Thomas Fielding legte mit seiner Dissertation den Grundstein
für REST
• Beides wird oft fälschlicherweise synonym verwendet
• Die wenigsten Services sind wirklich REST-Services
• REST setzt auf HTTP auf
• Unterschiede:
• POST oder DELETE für das Löschen einer Ressource?
• Hypermedia
• HATEOAS
HTTP vs REST
• Einfach gesagt: Eine API, die auf HTTP basiert
• Twitter, Facebook und … die Microsoft Azure Management API
• Schnittstelle, die intern und extern verwendet werden kann
• Unter anderem für die Mensch-Maschine- & Maschine-Maschine-Kommunikation
(Stichwort “Internet of Things”)
• Wird in der Regel nochmal in eine native API gewrappt
• Versteckt die Komplexität mancher API, wie richtiges Setzen von HTTP Headern, etc.
Was ist eine Web API?
• Die beste Variante um HTTP Services in .NET zu erstellen
• Starke Ähnlichkeit zu ASP.NET MVC
• Ähnliche Konzepte wie Controller, Routing, etc.
• Wenig Ähnlichkeit mit WCF
• Gehört zum Kern des “One ASP.NET”
ASP.NET Web API
Grundsätzliche Entscheidungsfrage:
1. Will ich Einfluss auf die darunter liegende Plattform haben
(bspw. IIS)?
2. Will ich Einfluss auf die Skalierung haben (automatisch bei
MAWS, teilweise händisch bei Cloud Services)?
Cloud Service oder Microsoft Azure Web Sites?
ASP.NET Web API & Microsoft Azure
DEMO
MongoNotes
• ODATA
• OAuth (Stichwort ASP.NET Identity & OWIN)
• REST
Wie könnte es weitergehen?
• Eine Service Layer kann das Leben leichter machen
• HTTP ≠ REST
• ASP.NET Web API ist die leichteste Möglichkeit HTTP Services in
.NET zu bauen
• Spielt perfekt mit Microsoft Azure zusammen
Zusammenfassung
• Allgemeine Informationen
• Dev Center - http://www.windowsazure.com/en-us/solutions/web/
• Dokumentation - http://www.windowsazure.com/en-us/documentation/services/web-
sites/
• Videos - http://channel9.msdn.com/search?term=windows+azure+web+sites
• ASP.NET Web API - http://www.asp.net/web-api
Allgemeines
FAQ
Web Ressourcen
Unter folgenden Einstiegspunkten finden sich alle Ressourcen, die für einen Start in Windows Azure wichtig sind
• Windows Azure Homepage
http://www.azure.com
• Kostenloser Demo-Account
http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=A2DCCE88E
• Windows Azure Development Center
http://www.windowsazure.com/en-us/develop/overview/
• Windows Azure SDKs
http://www.windowsazure.com/en-us/develop/downloads/
• Windows Azure Training Kit
http://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/
• Kundenreferenzen
http://www.microsoft.com/de-de/business/kundenreferenzen/default.aspx?product=53
• Video-Serie zu Windows Azure (10-Minuten-Videos):
http://www.youtube.com/watch?v=kLfaa_19yB4&list=PLC71216BDE26EBE8C

Api services

  • 1.
    Jan Hentschel MicrosoftMVP Microsoft Azure jan.hentschel@studentpartners.de @Horizon_Net API Services Die perfekte Kombination aus Microsoft Azure und ASP.NET Web API
  • 2.
    • HTTP Services •HTTP vs REST • Web API • Zusammenfassung und FAQ Agenda
  • 3.
    Alice Wie läuftes mit dem aktuellen App-Projekt? Bob Super! Unsere Datenbank und unsere App spielen super zusammen. Alice Schön zu hören. Wir wollen die App jetzt auch auf anderen Plattformen bereitstellen. Bob … Alice Gibt es ein Problem? Bob Aber dann müssen wir die ganze Logik ja nochmal schreiben! … Es war einmal …
  • 4.
  • 5.
  • 6.
  • 7.
    Warum nicht eineService Layer nutzen?
  • 8.
    App Layer Service Layer DataLayer Bessere Architektur
  • 9.
  • 10.
    • Setzen imGegensatz zu SOAP direkt auf dem HTTP-Protokoll auf • Unterstützen dadurch typische Persistenzoperationen • Lesen = GET • Schreiben = POST • Löschen = DELETE • Updaten = PUT • Nutzen typischerweise JSON und XML als Datenaustauschformate HTTP Services
  • 11.
    • Roy ThomasFielding legte mit seiner Dissertation den Grundstein für REST • Beides wird oft fälschlicherweise synonym verwendet • Die wenigsten Services sind wirklich REST-Services • REST setzt auf HTTP auf • Unterschiede: • POST oder DELETE für das Löschen einer Ressource? • Hypermedia • HATEOAS HTTP vs REST
  • 12.
    • Einfach gesagt:Eine API, die auf HTTP basiert • Twitter, Facebook und … die Microsoft Azure Management API • Schnittstelle, die intern und extern verwendet werden kann • Unter anderem für die Mensch-Maschine- & Maschine-Maschine-Kommunikation (Stichwort “Internet of Things”) • Wird in der Regel nochmal in eine native API gewrappt • Versteckt die Komplexität mancher API, wie richtiges Setzen von HTTP Headern, etc. Was ist eine Web API?
  • 13.
    • Die besteVariante um HTTP Services in .NET zu erstellen • Starke Ähnlichkeit zu ASP.NET MVC • Ähnliche Konzepte wie Controller, Routing, etc. • Wenig Ähnlichkeit mit WCF • Gehört zum Kern des “One ASP.NET” ASP.NET Web API
  • 14.
    Grundsätzliche Entscheidungsfrage: 1. Willich Einfluss auf die darunter liegende Plattform haben (bspw. IIS)? 2. Will ich Einfluss auf die Skalierung haben (automatisch bei MAWS, teilweise händisch bei Cloud Services)? Cloud Service oder Microsoft Azure Web Sites? ASP.NET Web API & Microsoft Azure
  • 15.
  • 16.
    • ODATA • OAuth(Stichwort ASP.NET Identity & OWIN) • REST Wie könnte es weitergehen?
  • 17.
    • Eine ServiceLayer kann das Leben leichter machen • HTTP ≠ REST • ASP.NET Web API ist die leichteste Möglichkeit HTTP Services in .NET zu bauen • Spielt perfekt mit Microsoft Azure zusammen Zusammenfassung
  • 18.
    • Allgemeine Informationen •Dev Center - http://www.windowsazure.com/en-us/solutions/web/ • Dokumentation - http://www.windowsazure.com/en-us/documentation/services/web- sites/ • Videos - http://channel9.msdn.com/search?term=windows+azure+web+sites • ASP.NET Web API - http://www.asp.net/web-api Allgemeines FAQ
  • 19.
    Web Ressourcen Unter folgendenEinstiegspunkten finden sich alle Ressourcen, die für einen Start in Windows Azure wichtig sind • Windows Azure Homepage http://www.azure.com • Kostenloser Demo-Account http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=A2DCCE88E • Windows Azure Development Center http://www.windowsazure.com/en-us/develop/overview/ • Windows Azure SDKs http://www.windowsazure.com/en-us/develop/downloads/ • Windows Azure Training Kit http://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/ • Kundenreferenzen http://www.microsoft.com/de-de/business/kundenreferenzen/default.aspx?product=53 • Video-Serie zu Windows Azure (10-Minuten-Videos): http://www.youtube.com/watch?v=kLfaa_19yB4&list=PLC71216BDE26EBE8C

Hinweis der Redaktion

  • #7 Hier kommen ab und zu die Ideen von PhoneGap und Xamarin ins Spiel, vernachlässigen aber dass es potenziell noch mehr Plattformen gibt als mobile.
  • #12 HATEOS = Hypertext As The Engine Of Application State Eine Art Selbstbeschreibung einer API, die sehr nützlich ist bei der Maschine-Maschine-Kommunikation Es ist jederzeit klar welche Operationen möglich sind (durch Verlinkung)
  • #14 Wurde bei der Entstehung im ASP.NET-Team angesiedelt und nicht beim WCF-Team, was zu einiger Verwirrung führte, da in WCF das RestKit vorhanden war (Web API setzte sich durch).