SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Web APIs auf dem Prüfstand
Volle Kontrolle oder fertig mit den Azure Mobile Services?
Web APIs
Remote Procedure Calls (RPC)
Verben/Aktionen im Endpunkt enthalten
GetCustomer
InsertInvoice
DeleteCustomer
Jeder Endpunkt entspricht einem eigenen URI
Wo kommen wir her?
REST is kein Standard, verwendet aber Standards
Architekturkonzept
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)
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
Anfrage (Request)
• Request Line
• Request Headers
• Request Body
Antwort (Response)
• Status Line
• Response Headers
• Response Body
Anatomie von HTTP-Nachrichten
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
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
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
ASP.NET MVC Modell
Controller  ApiController
ASP.NET Web API
Microsoft Azure
Mobile Services
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
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 Deploy
oder FTP
Deployment
Daten speichern
ASP.NET MVC Web API
• Datensenke erstellen, verbinden
und verwenden
Azure Mobile Services
• Azure SQL Database
• Offline-Synchronisation möglich
• Datenbankzugriff abstrahiert
Client- und serverseitig
Mit JavaScript-Backend
• Dynamisches Schema
Daten
Integration
Unterstützung für REST durch viele Bibliotheken
Alternativ: separate Unterstützung für HTTP, JSON und XML
Breite Tool-Unterstützung zum Testen
GET-Anfragen mit Browsern
Auswahl von HTTP-Methoden in Tools wie Fiddler oder Runscope
Entwicklerunterstützung
SDKs für Client-Entwicklung
Azure API Management
Integration von REST-Diensten
SDKs in Azure Mobile Services für Vielzahl an Plattformen
Windows Universal Apps
Android
iOS
HTML / JavaScript
Xamarin
PhoneGab
SDKs in Azure Mobile Services
Verbindung mit lokaler Infrastruktur
Connection String:
my-database:1433
Hybrid
Connection
Manager
Server: my-database:1433
Hybrid Connection
Endpoint
http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-hybrid-connections-get-started/
Absicherung
Konfiguration entspricht der Einrichtung von Web-Servern
Unabhängig von REST oder Web API
Konfiguration abhängig von der Installation
Hoster
VMs
Azure Website
Cloud Service
Azure Mobile Service
TLS / SSL
ASP.NET MVC Web API
• Implementierung bei ASP.NET MVC
Web API benutzerdefiniert
Azure Mobile Services
Beinhaltet SSO-Provider
• Twitter
• Google
• Facebook
• Microsoft-Konto
• Azure Active Directory
Authentifikation
Resumé
Auswahl des Frameworks und der Plattform
Web API
On-Prem
Web API auf
Azure
Azure 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
© 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 Dank Peter.Kirchner
@Microsoft.com
blogs.msdn.com/
pkirchner
Twitter:
@peterkirchner

Weitere ähnliche Inhalte

Andere mochten auch

Instructions ZEISS Victory Compact Point | Optics Trade
Instructions ZEISS Victory Compact Point | Optics TradeInstructions ZEISS Victory Compact Point | Optics Trade
Instructions ZEISS Victory Compact Point | Optics TradeOptics-Trade
 
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013Julia Kloiber
 
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...CADFEM Austria GmbH
 
Eine Holzgarage selber bauen
Eine Holzgarage selber bauenEine Holzgarage selber bauen
Eine Holzgarage selber bauenDaniel Sebbin
 
Folien advisory board meeting
Folien advisory board meetingFolien advisory board meeting
Folien advisory board meetingJulia Kloiber
 
Ein Gartenhaus selbst bauen
Ein Gartenhaus selbst bauenEin Gartenhaus selbst bauen
Ein Gartenhaus selbst bauenDaniel Sebbin
 
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssen
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssenPost-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssen
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssenStefanGoebel
 
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013Optics-Trade
 
Bachiller,
Bachiller, Bachiller,
Bachiller, manusoci
 
Die 7 Sünden der Händler
Die 7 Sünden der HändlerDie 7 Sünden der Händler
Die 7 Sünden der HändlerAlexKornegger
 
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos B
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos BBloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos B
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos BFernando Roman
 
E World Presentation Spanish Version 27 Febr
E World Presentation Spanish Version 27 FebrE World Presentation Spanish Version 27 Febr
E World Presentation Spanish Version 27 FebrDaniel Abam
 
¿Chávez Se Retracta?
¿Chávez Se Retracta?¿Chávez Se Retracta?
¿Chávez Se Retracta?Christian Dys
 
Rassismus und Sexismus ab_bloggen
Rassismus und Sexismus ab_bloggenRassismus und Sexismus ab_bloggen
Rassismus und Sexismus ab_bloggenTeresa Buecker
 
Gat2 54
Gat2 54Gat2 54
Gat2 54sumezz
 
DIN EN ISO 50001
DIN EN ISO 50001 DIN EN ISO 50001
DIN EN ISO 50001 Ulla Herbst
 
Las mejores imagenes 2007
Las mejores imagenes 2007Las mejores imagenes 2007
Las mejores imagenes 2007Eartquake
 

Andere mochten auch (20)

Instructions ZEISS Victory Compact Point | Optics Trade
Instructions ZEISS Victory Compact Point | Optics TradeInstructions ZEISS Victory Compact Point | Optics Trade
Instructions ZEISS Victory Compact Point | Optics Trade
 
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013
„Open Data – und was hat das mit mir zu tun?" - Re:publica 2013
 
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...
KTM Technologies: Konzeptvergleich eines Fahrzeugheckrahmens hinsichtlich Fes...
 
Eine Holzgarage selber bauen
Eine Holzgarage selber bauenEine Holzgarage selber bauen
Eine Holzgarage selber bauen
 
Folien advisory board meeting
Folien advisory board meetingFolien advisory board meeting
Folien advisory board meeting
 
Ein Gartenhaus selbst bauen
Ein Gartenhaus selbst bauenEin Gartenhaus selbst bauen
Ein Gartenhaus selbst bauen
 
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssen
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssenPost-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssen
Post-ePub: Was danach kommt oder Was Lese-Apps jetzt leisten müssen
 
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013
Catalog RECKNAGEL Rifle Accessories | Optics Trade | 2013
 
Bachiller,
Bachiller, Bachiller,
Bachiller,
 
Die 7 Sünden der Händler
Die 7 Sünden der HändlerDie 7 Sünden der Händler
Die 7 Sünden der Händler
 
tics slideshare
tics slidesharetics slideshare
tics slideshare
 
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos B
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos BBloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos B
Bloque 4 La Lectura De ImáGenes (Ix Y X)El Tiempo Y Los Textos B
 
E World Presentation Spanish Version 27 Febr
E World Presentation Spanish Version 27 FebrE World Presentation Spanish Version 27 Febr
E World Presentation Spanish Version 27 Febr
 
¿Chávez Se Retracta?
¿Chávez Se Retracta?¿Chávez Se Retracta?
¿Chávez Se Retracta?
 
Rassismus und Sexismus ab_bloggen
Rassismus und Sexismus ab_bloggenRassismus und Sexismus ab_bloggen
Rassismus und Sexismus ab_bloggen
 
Presentacion Pgou[1]
Presentacion Pgou[1]Presentacion Pgou[1]
Presentacion Pgou[1]
 
Gat2 54
Gat2 54Gat2 54
Gat2 54
 
DIN EN ISO 50001
DIN EN ISO 50001 DIN EN ISO 50001
DIN EN ISO 50001
 
Deportes
DeportesDeportes
Deportes
 
Las mejores imagenes 2007
Las mejores imagenes 2007Las mejores imagenes 2007
Las mejores imagenes 2007
 

Ähnlich wie Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile Services? (Microsoft Technical Summit 2014)

DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdfDNUG e.V.
 
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-PortalsOpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portalsflimm
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile ServicesSascha Dittmann
 
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDNUG e.V.
 
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenSicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenPhilipp Burgmer
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Jürg Stuker
 
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...new Html5 features and browser compatibility, Stand der Standardisierung, Übe...
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...Sinan Akalın
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere RESTMartin Abraham
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenJan Hentschel
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOPITZ CONSULTING Deutschland
 
Apple iOS - Webservices
Apple iOS - WebservicesApple iOS - Webservices
Apple iOS - Webservicesmesseb
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 

Ähnlich wie Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile Services? (Microsoft Technical Summit 2014) (20)

DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
 
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-PortalsOpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdfDACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
DACHNUG50 Die Domino REST API - Konzepte und Hintergruende.pdf
 
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenSicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-Anwendungen
 
Net@night asp.net mvc
Net@night asp.net mvcNet@night asp.net mvc
Net@night asp.net mvc
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Web-API Design in Java
Web-API Design in JavaWeb-API Design in Java
Web-API Design in Java
 
Workshop Vue js
Workshop Vue jsWorkshop Vue js
Workshop Vue js
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
 
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...new Html5 features and browser compatibility, Stand der Standardisierung, Übe...
new Html5 features and browser compatibility, Stand der Standardisierung, Übe...
 
GWT
GWTGWT
GWT
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
 
Apple iOS - Webservices
Apple iOS - WebservicesApple iOS - Webservices
Apple iOS - Webservices
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
AngularJs
AngularJsAngularJs
AngularJs
 

Mehr von Peter Kirchner

Blockchain in the Food Supply Chain (v2)
Blockchain in the Food Supply Chain (v2)Blockchain in the Food Supply Chain (v2)
Blockchain in the Food Supply Chain (v2)Peter Kirchner
 
Blockchain in the Food Supply Chain
Blockchain in the Food Supply ChainBlockchain in the Food Supply Chain
Blockchain in the Food Supply ChainPeter Kirchner
 
Risiko Datensicherheit - eine unterhaltsame Sightseeing Tour
Risiko Datensicherheit - eine unterhaltsame Sightseeing TourRisiko Datensicherheit - eine unterhaltsame Sightseeing Tour
Risiko Datensicherheit - eine unterhaltsame Sightseeing TourPeter Kirchner
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Peter Kirchner
 
Risiko Datensicherheit - End-to-End-Verschlüsselung von Anwendungsdaten
Risiko Datensicherheit - End-to-End-Verschlüsselung von AnwendungsdatenRisiko Datensicherheit - End-to-End-Verschlüsselung von Anwendungsdaten
Risiko Datensicherheit - End-to-End-Verschlüsselung von AnwendungsdatenPeter Kirchner
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Peter Kirchner
 
Cloud OS - Die Vision und Strategie von Microsoft
Cloud OS - Die Vision und Strategie von MicrosoftCloud OS - Die Vision und Strategie von Microsoft
Cloud OS - Die Vision und Strategie von MicrosoftPeter Kirchner
 
Innovation durch Cloud Computing
Innovation durch Cloud ComputingInnovation durch Cloud Computing
Innovation durch Cloud ComputingPeter Kirchner
 
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzenWindows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzenPeter Kirchner
 

Mehr von Peter Kirchner (9)

Blockchain in the Food Supply Chain (v2)
Blockchain in the Food Supply Chain (v2)Blockchain in the Food Supply Chain (v2)
Blockchain in the Food Supply Chain (v2)
 
Blockchain in the Food Supply Chain
Blockchain in the Food Supply ChainBlockchain in the Food Supply Chain
Blockchain in the Food Supply Chain
 
Risiko Datensicherheit - eine unterhaltsame Sightseeing Tour
Risiko Datensicherheit - eine unterhaltsame Sightseeing TourRisiko Datensicherheit - eine unterhaltsame Sightseeing Tour
Risiko Datensicherheit - eine unterhaltsame Sightseeing Tour
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
 
Risiko Datensicherheit - End-to-End-Verschlüsselung von Anwendungsdaten
Risiko Datensicherheit - End-to-End-Verschlüsselung von AnwendungsdatenRisiko Datensicherheit - End-to-End-Verschlüsselung von Anwendungsdaten
Risiko Datensicherheit - End-to-End-Verschlüsselung von Anwendungsdaten
 
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
 
Cloud OS - Die Vision und Strategie von Microsoft
Cloud OS - Die Vision und Strategie von MicrosoftCloud OS - Die Vision und Strategie von Microsoft
Cloud OS - Die Vision und Strategie von Microsoft
 
Innovation durch Cloud Computing
Innovation durch Cloud ComputingInnovation durch Cloud Computing
Innovation durch Cloud Computing
 
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzenWindows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
Windows Azure IaaS - Mit Cloud Computing Ideen schneller umsetzen
 

Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile Services? (Microsoft Technical Summit 2014)

  • 1. Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?
  • 3. Remote Procedure Calls (RPC) Verben/Aktionen im Endpunkt enthalten GetCustomer InsertInvoice DeleteCustomer Jeder Endpunkt entspricht einem eigenen URI Wo kommen wir her?
  • 4. REST is kein Standard, verwendet aber Standards Architekturkonzept 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)
  • 5. 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
  • 6. Anfrage (Request) • Request Line • Request Headers • Request Body Antwort (Response) • Status Line • Response Headers • Response Body Anatomie von HTTP-Nachrichten
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. ASP.NET MVC Modell Controller  ApiController ASP.NET Web API
  • 11.
  • 13.
  • 14. 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
  • 15. 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 Deploy oder FTP Deployment
  • 17. ASP.NET MVC Web API • Datensenke erstellen, verbinden und verwenden Azure Mobile Services • Azure SQL Database • Offline-Synchronisation möglich • Datenbankzugriff abstrahiert Client- und serverseitig Mit JavaScript-Backend • Dynamisches Schema Daten
  • 18.
  • 20. Unterstützung für REST durch viele Bibliotheken Alternativ: separate Unterstützung für HTTP, JSON und XML Breite Tool-Unterstützung zum Testen GET-Anfragen mit Browsern Auswahl von HTTP-Methoden in Tools wie Fiddler oder Runscope Entwicklerunterstützung SDKs für Client-Entwicklung Azure API Management Integration von REST-Diensten
  • 21. SDKs in Azure Mobile Services für Vielzahl an Plattformen Windows Universal Apps Android iOS HTML / JavaScript Xamarin PhoneGab SDKs in Azure Mobile Services
  • 22. Verbindung mit lokaler Infrastruktur Connection String: my-database:1433 Hybrid Connection Manager Server: my-database:1433 Hybrid Connection Endpoint http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-hybrid-connections-get-started/
  • 23.
  • 25. Konfiguration entspricht der Einrichtung von Web-Servern Unabhängig von REST oder Web API Konfiguration abhängig von der Installation Hoster VMs Azure Website Cloud Service Azure Mobile Service TLS / SSL
  • 26.
  • 27. ASP.NET MVC Web API • Implementierung bei ASP.NET MVC Web API benutzerdefiniert Azure Mobile Services Beinhaltet SSO-Provider • Twitter • Google • Facebook • Microsoft-Konto • Azure Active Directory Authentifikation
  • 28.
  • 30. Auswahl des Frameworks und der Plattform Web API On-Prem Web API auf Azure Azure 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
  • 31. © 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 Dank Peter.Kirchner @Microsoft.com blogs.msdn.com/ pkirchner Twitter: @peterkirchner

Hinweis der Redaktion

  1. ASP.NET MVC Web API Azure Mobile Services CRUD  Post, Put, Delete, Patch While REST is not a standard, it does use standards: HTTP URL XML/HTML/GIF/JPEG/etc (Resource Representations) text/xml, text/html, image/gif, image/jpeg, etc (MIME Types)
  2. Wie funktioniert es?  Wie programmiert man es? Wie sieht es aus Client-Sicht aus?  Code
  3. Mit VS eine Web API in C# bauen. Die Web API lokal ansprechen. (Mit Fiddler.)
  4. Was sind die AMS? Was können sie? Backend JS und .NET: Unterschiede Code und Portal Daten-Backend: Azure SQL Database
  5. Azure Mobile Service in Azure mit JS-Backend erstellen Azure Mobile Service in Azure mit .NET-Backend erstellen Das .NET-Backend ist WebAPI. Daher in Folge nur noch Vergleich zum JS-Backend. Custom API über Fiddler aufrufen.
  6. Daten speichern im ASP.NET MVC Web API Projekt Daten speichern im Azure Mobile Service (JS / .NET)
  7. Using the REST Services with .NET http://msdn.microsoft.com/en-us/library/jj819168.aspx Java 7 - Mehr als eine Insel - RESTful Web-Services http://openbook.galileocomputing.de/java7/1507_13_002.html Runscope: www.runscope.com
  8. Beispiel aus den Azure Mobile Services des Schnellstarts für Windows.
  9. Beispiel aus den Azure Mobile Services des Schnellstarts für Android.
  10. Quick Start in Azure Mobile Services, Universal App (und Android) Hybrid Connection
  11. Integriert bei AMS und nicht änderbar
  12. Beispiel für die Konfiguration bei Azure Websites
  13. Authentifikation mit AMS und FB
  14. Diese Folie als Sprechernotizen verwenden.