SlideShare une entreprise Scribd logo
1  sur  19
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

Contenu connexe

Tendances

2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPressstk_jj
 
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
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Gerrit Beine
 
WebDevOps Samson deployment
WebDevOps Samson deploymentWebDevOps Samson deployment
WebDevOps Samson deploymentMarkus Blaschke
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016ICS User Group
 
JUG MZ OSGi Lightning Talk
JUG MZ OSGi Lightning TalkJUG MZ OSGi Lightning Talk
JUG MZ OSGi Lightning TalkThilo Käsemann
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSBjörn Wilmsmann
 
Cloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu ServerlessCloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu ServerlessOPEN KNOWLEDGE GmbH
 
High Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenHigh Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenweb-solutions
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudAOE
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWSAWS Germany
 
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtArbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtAWS Germany
 
Intro to scaling Databases
Intro to scaling DatabasesIntro to scaling Databases
Intro to scaling DatabasesHeiko Seebach
 
SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?René Winkelmeyer
 
Chefkoch goes Drupal8
Chefkoch goes Drupal8Chefkoch goes Drupal8
Chefkoch goes Drupal8Per Bernhardt
 

Tendances (20)

2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress2FA4WP - Two Factor Authentification for WordPress
2FA4WP - Two Factor Authentification for WordPress
 
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
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)
 
WebDevOps Samson deployment
WebDevOps Samson deploymentWebDevOps Samson deployment
WebDevOps Samson deployment
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016
 
JUG MZ OSGi Lightning Talk
JUG MZ OSGi Lightning TalkJUG MZ OSGi Lightning Talk
JUG MZ OSGi Lightning Talk
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
 
Cloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu ServerlessCloud Architekturen - von "less Server" zu Serverless
Cloud Architekturen - von "less Server" zu Serverless
 
High Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzenHigh Traffic Websites mit Craft CMS umsetzen
High Traffic Websites mit Craft CMS umsetzen
 
Wordpress Crashkurs
Wordpress CrashkursWordpress Crashkurs
Wordpress Crashkurs
 
20131028 named braches
20131028 named braches20131028 named braches
20131028 named braches
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWS
 
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrtArbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
Arbeiten Sie wo Sie wollen – Ihre Daten bleiben zentral und sicher verwahrt
 
Intro to scaling Databases
Intro to scaling DatabasesIntro to scaling Databases
Intro to scaling Databases
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?SNoUG 2015 - Vaadin - XPages 2.0?
SNoUG 2015 - Vaadin - XPages 2.0?
 
Chefkoch goes Drupal8
Chefkoch goes Drupal8Chefkoch goes Drupal8
Chefkoch goes Drupal8
 

En vedette

Searchperience Indexierungspipeline
Searchperience IndexierungspipelineSearchperience Indexierungspipeline
Searchperience IndexierungspipelineAOE
 
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...Haris Ibric
 
Principales contratos mercantiles
Principales contratos mercantilesPrincipales contratos mercantiles
Principales contratos mercantilesSara de Cifuentes
 
Periódico juan hernandez
Periódico juan hernandezPeriódico juan hernandez
Periódico juan hernandezJuan Hernández
 
Prepárate para la entrevista de trabajo
Prepárate para la entrevista de trabajoPrepárate para la entrevista de trabajo
Prepárate para la entrevista de trabajoRosalía Rojas
 
Diseño del plan de seguridad
Diseño del plan de seguridadDiseño del plan de seguridad
Diseño del plan de seguridadjusk_z
 
Diagrama de bloques
Diagrama de bloquesDiagrama de bloques
Diagrama de bloquesgreronre
 
Funktionalität und Ästhetik
Funktionalität und ÄsthetikFunktionalität und Ästhetik
Funktionalität und ÄsthetikJingleT
 
Auswirkungen des Klimawandels auf die Hochwasserprozesse
Auswirkungen des Klimawandels auf die HochwasserprozesseAuswirkungen des Klimawandels auf die Hochwasserprozesse
Auswirkungen des Klimawandels auf die HochwasserprozesseBAFU OFEV UFAM FOEN
 
Documento de propuestas al plan de acción aga
Documento de propuestas al plan de acción agaDocumento de propuestas al plan de acción aga
Documento de propuestas al plan de acción agacomunicaciones_funde
 
Step aerobic juli 2013 no 1
Step aerobic juli 2013 no 1Step aerobic juli 2013 no 1
Step aerobic juli 2013 no 1Alexander Krauß
 
Aplicaciones ofimáticas
Aplicaciones ofimáticasAplicaciones ofimáticas
Aplicaciones ofimáticasAmanda Molina
 

En vedette (20)

Searchperience Indexierungspipeline
Searchperience IndexierungspipelineSearchperience Indexierungspipeline
Searchperience Indexierungspipeline
 
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...
Kontrastivna analiza sintaktičkih struktura njemačkog i bosanskog jezika Hari...
 
Principales contratos mercantiles
Principales contratos mercantilesPrincipales contratos mercantiles
Principales contratos mercantiles
 
IDJ 3
IDJ 3IDJ 3
IDJ 3
 
Periódico juan hernandez
Periódico juan hernandezPeriódico juan hernandez
Periódico juan hernandez
 
Prepárate para la entrevista de trabajo
Prepárate para la entrevista de trabajoPrepárate para la entrevista de trabajo
Prepárate para la entrevista de trabajo
 
Diseño del plan de seguridad
Diseño del plan de seguridadDiseño del plan de seguridad
Diseño del plan de seguridad
 
Micrologix 1200-y-1500
Micrologix 1200-y-1500Micrologix 1200-y-1500
Micrologix 1200-y-1500
 
Read me german
Read me germanRead me german
Read me german
 
Diagrama de bloques
Diagrama de bloquesDiagrama de bloques
Diagrama de bloques
 
Funktionalität und Ästhetik
Funktionalität und ÄsthetikFunktionalität und Ästhetik
Funktionalität und Ästhetik
 
Slide
SlideSlide
Slide
 
Machine
MachineMachine
Machine
 
Mobile-Dating-Markt 2013 Schweiz
Mobile-Dating-Markt 2013 SchweizMobile-Dating-Markt 2013 Schweiz
Mobile-Dating-Markt 2013 Schweiz
 
Anpassung an den Klimawandel
Anpassung an den KlimawandelAnpassung an den Klimawandel
Anpassung an den Klimawandel
 
Auswirkungen des Klimawandels auf die Hochwasserprozesse
Auswirkungen des Klimawandels auf die HochwasserprozesseAuswirkungen des Klimawandels auf die Hochwasserprozesse
Auswirkungen des Klimawandels auf die Hochwasserprozesse
 
Dm
DmDm
Dm
 
Documento de propuestas al plan de acción aga
Documento de propuestas al plan de acción agaDocumento de propuestas al plan de acción aga
Documento de propuestas al plan de acción aga
 
Step aerobic juli 2013 no 1
Step aerobic juli 2013 no 1Step aerobic juli 2013 no 1
Step aerobic juli 2013 no 1
 
Aplicaciones ofimáticas
Aplicaciones ofimáticasAplicaciones ofimáticas
Aplicaciones ofimáticas
 

Similaire à Api services

Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015AboutYouGmbH
 
Was ist eigentlich SharePoint
Was ist eigentlich SharePointWas ist eigentlich SharePoint
Was ist eigentlich SharePointMax Nowack
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaOPEN KNOWLEDGE GmbH
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationSamuel Zürcher
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application FrameworkBATbern
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsUlrich Schmidt
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
Apple iOS - Webservices
Apple iOS - WebservicesApple iOS - Webservices
Apple iOS - Webservicesmesseb
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine ÜbersichtJürgen Gutsch
 
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
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istRamon Anger
 
Creasoft - Windows Azure
Creasoft - Windows AzureCreasoft - Windows Azure
Creasoft - Windows AzureCreasoft AG
 

Similaire à Api services (20)

Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Was ist eigentlich SharePoint
Was ist eigentlich SharePointWas ist eigentlich SharePoint
Was ist eigentlich SharePoint
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit Java
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL Installation
 
Web-API-Design in Java
Web-API-Design in JavaWeb-API-Design in Java
Web-API-Design in Java
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
 
.NET zu .NET Core
.NET zu .NET Core.NET zu .NET Core
.NET zu .NET Core
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
Apple iOS - Webservices
Apple iOS - WebservicesApple iOS - Webservices
Apple iOS - Webservices
 
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
.NET Core, .NET Standard & ASP.NET Core - Eine Übersicht
 
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
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Creasoft - Windows Azure
Creasoft - Windows AzureCreasoft - Windows Azure
Creasoft - Windows Azure
 
PHPblue LOS!NRW
PHPblue LOS!NRWPHPblue LOS!NRW
PHPblue LOS!NRW
 

Plus de Jan Hentschel

Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBJan Hentschel
 
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der PraxisMehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der PraxisJan Hentschel
 
Agile Virtualisierung
Agile VirtualisierungAgile Virtualisierung
Agile VirtualisierungJan Hentschel
 
Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8Jan Hentschel
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für EntwicklerJan Hentschel
 
Was macht eine gute App aus
Was macht eine gute App ausWas macht eine gute App aus
Was macht eine gute App ausJan Hentschel
 
Was ist neu an Windows 8
Was ist neu an Windows 8Was ist neu an Windows 8
Was ist neu an Windows 8Jan Hentschel
 
Grundlagen des UI Designs
Grundlagen des UI DesignsGrundlagen des UI Designs
Grundlagen des UI DesignsJan Hentschel
 
Einführung in Blend
Einführung in BlendEinführung in Blend
Einführung in BlendJan Hentschel
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL DatabasesJan Hentschel
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile ServicesJan Hentschel
 

Plus de Jan Hentschel (12)

Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDB
 
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der PraxisMehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
 
Agile Virtualisierung
Agile VirtualisierungAgile Virtualisierung
Agile Virtualisierung
 
Windows 8 Features
Windows 8 FeaturesWindows 8 Features
Windows 8 Features
 
Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
 
Was macht eine gute App aus
Was macht eine gute App ausWas macht eine gute App aus
Was macht eine gute App aus
 
Was ist neu an Windows 8
Was ist neu an Windows 8Was ist neu an Windows 8
Was ist neu an Windows 8
 
Grundlagen des UI Designs
Grundlagen des UI DesignsGrundlagen des UI Designs
Grundlagen des UI Designs
 
Einführung in Blend
Einführung in BlendEinführung in Blend
Einführung in Blend
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 

Api services

  • 1. 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
  • 2. • HTTP Services • HTTP vs REST • Web API • Zusammenfassung und FAQ Agenda
  • 3. 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 …
  • 7. Warum nicht eine Service Layer nutzen?
  • 8. App Layer Service Layer Data Layer Bessere Architektur
  • 10. • 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
  • 11. • 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
  • 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 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
  • 14. 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
  • 16. • ODATA • OAuth (Stichwort ASP.NET Identity & OWIN) • REST Wie könnte es weitergehen?
  • 17. • 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
  • 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 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

Notes de l'éditeur

  1. 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.
  2. 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)
  3. 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).