![Page 1: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/1.jpg)
Web APIs auf dem PrüfstandVolle Kontrolle oder fertig mit den Azure Mobile Services?
![Page 2: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/2.jpg)
Web APIs
![Page 3: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/3.jpg)
Remote Procedure Calls (RPC)
Verben/Aktionen im Endpunkt enthaltenGetCustomer
InsertInvoice
DeleteCustomer
Jeder Endpunkt entspricht einem eigenen URI
Wo kommen wir her?
![Page 4: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/4.jpg)
REST is kein Standard, verwendet aber StandardsArchitekturkonzept
Roy Fielding in 2000“Architectural Styles and the Design of Network-based Software Architectures”
HTTP Stack, expliziter Gebrauch von HTTP
Methoden/Verben
Representational State Transfer (REST)
![Page 5: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/5.jpg)
Statuslos (stateless)
URIs mit Verzeichnisstruktur
XML, JavaScript Object Notation (JSON) oder beidesÜbertragung von Snapshots der Daten im Body
Keine Anweisungen oder Methoden im Body
Grundlegende Entwurfsprinzipien von REST
![Page 6: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/6.jpg)
Anfrage (Request)• Request Line
• Request Headers
• Request Body
Antwort (Response)• Status Line
• Response Headers
• Response Body
Anatomie von HTTP-Nachrichten
![Page 7: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/7.jpg)
Anfrage (Request)GET http://localhost:21697/api/employees/12345 HTTP/1.1
User-Agent: Fiddler
Host: localhost:21697
Antwort (Response)HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Tue, 04 Nov 2014 15:48:03 GMT
Content-Length: 50
{"Id":12345,"FirstName":"John","LastName":"Human"}
Beispiel: GET
![Page 8: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/8.jpg)
Anfrage (Request)PATCH http://localhost:21697/api/employees/12345 HTTP/1.1
Content-Type: application/json
Host: localhost:21697
Content-Length: 23
{"LastName":"Kirchner"}
Antwort (Response)HTTP/1.1 204 No Content
Date: Tue, 04 Nov 2014 16:36:35 GMT
Beispiel: PATCH
![Page 9: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/9.jpg)
Create, Read, Update und Delete-Operationen (CRUD)
bilden auf HTTP-Methoden ab.Erstellen (Create) POST
Lesen (Read) GET
Ändern (Update) PUT / PATCH
Löschen (Delete) DELETE
Generelles Entwurfsprinzip: Nomen statt Verben verwenden
HTTP-Methoden
![Page 10: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/10.jpg)
ASP.NET MVC Modell
Controller ApiController
ASP.NET Web API
![Page 11: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/11.jpg)
![Page 12: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/12.jpg)
Microsoft Azure
Mobile Services
![Page 13: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/13.jpg)
![Page 14: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/14.jpg)
ASP.NET MVC Web API
• .NET-Sprachen wie C#, VB.NET, …
• MVC-Architektur
• I.d.R. Remote-Debuggen möglich
• Lokales Testen möglich
Azure Mobile Services
Mit JavaScript-Backend• JavaScript und node.js
• Kein lokales Testen
• Kein Remote-Debuggen
Mit .NET-Backend• ASP.NET MVC Web API
Siehe linke Seite
• Integrierte Features von AMS
Entwicklungsumgebung
![Page 15: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/15.jpg)
ASP.NET MVC Web API• I.d.R. IIS in vielfältiger Umgebung
Eigener Server
Hoster
Azure Websites
Azure Cloud Services
• Übertragung abhängig von Umgebung
FTP
Web Deploy
Git, TFS
Azure Mobile Services• Git
Mit JavaScript-Backend• Manuelles Editieren im
Verwaltungsportal
Mit .NET-Backend• Ausführung auf Azure Websites
Übertragung dadurch mit Web Deployoder FTP
Deployment
![Page 16: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/16.jpg)
Daten speichern
![Page 17: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/17.jpg)
ASP.NET MVC Web API
• Datensenke erstellen, verbinden und verwenden
Azure Mobile Services• Azure SQL Database
• Offline-Synchronisation möglich
• Datenbankzugriff abstrahiertClient- und serverseitig
Mit JavaScript-Backend• Dynamisches Schema
Daten
![Page 18: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/18.jpg)
![Page 19: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/19.jpg)
Integration
![Page 20: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/20.jpg)
Unterstützung für REST durch viele BibliothekenAlternativ: separate Unterstützung für HTTP, JSON und XML
Breite Tool-Unterstützung zum TestenGET-Anfragen mit Browsern
Auswahl von HTTP-Methoden in Tools wie Fiddler oder Runscope
EntwicklerunterstützungSDKs für Client-Entwicklung
Azure API Management
Integration von REST-Diensten
![Page 21: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/21.jpg)
SDKs in Azure Mobile Services für Vielzahl an PlattformenWindows Universal Apps
Android
iOS
HTML / JavaScript
Xamarin
PhoneGab
SDKs in Azure Mobile Services
![Page 22: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/22.jpg)
Verbindung mit lokaler Infrastruktur
Connection String:
my-database:1433
Hybrid Connection
Manager
Server: my-database:1433Hybrid Connection
Endpoint
http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-hybrid-connections-get-started/
![Page 23: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/23.jpg)
![Page 24: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/24.jpg)
Absicherung
![Page 25: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/25.jpg)
Konfiguration entspricht der Einrichtung von Web-ServernUnabhängig von REST oder Web API
Konfiguration abhängig von der InstallationHoster
VMs
Azure Website
Cloud Service
Azure Mobile Service
TLS / SSL
![Page 26: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/26.jpg)
![Page 27: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/27.jpg)
ASP.NET MVC Web API
• Implementierung bei ASP.NET MVC Web API benutzerdefiniert
Azure Mobile Services
Beinhaltet SSO-Provider• Twitter
• Microsoft-Konto
• Azure Active Directory
Authentifikation
![Page 28: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/28.jpg)
![Page 29: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/29.jpg)
Resumé
![Page 30: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/30.jpg)
Auswahl des Frameworks und der Plattform
Web API
On-Prem
Web API auf
AzureAzure Mobile Services
HTTP Stack Web API Web API Web API
Data Stack EF,
nach Belieben
EF, Azure Tables,
nach Belieben
EF, Azure Tables etc.
Automatische SQL-Provisionierung
Hosting BYO PaaS PaaS + seamless framework updates and
bugfixes
Device SDK BYO BYO Windows, iOS, Android, HTML, Xamarin,
PhoneGab
Auth/Offline NuGet NuGet Integriert für Social SSOs und AAD
Offline basiert auf SQLite
Push NuGet Notification Hubs Integriert mit Notification Hubs mit eingebauter
Authentifizierung und Analytics
![Page 31: Web APIs auf dem Prüfstand · ASP.NET MVC Web API •.NET-Sprachen wie C#, VB.NET, … • MVC-Architektur • I.d.R. Remote-Debuggen möglich • Lokales Testen möglich Azure Mobile](https://reader033.vdocuments.pub/reader033/viewer/2022043000/5f772c584e5e0c5cf1735bda/html5/thumbnails/31.jpg)
© 2014 Microsoft Corporation. All rights reserved. Because
Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information
provided after the date of this presentation. MICROSOFT MAKES
NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE
INFORMATION IN THIS PRESENTATION.
Vielen DankPeter.Kirchner
@Microsoft.com
blogs.msdn.com/
pkirchner
Twitter:
@peterkirchner