Stefan Langeempira Software GmbHStefan.Lange@empira.deEinführung in dieWindows Azure Mobil Services03.05.2013
Agenda Warum Azure Mobile Services? Überblick Features Beispielanwendung Einsatzszenarien FazitFragen / Diskussion
Was sind die Azure Mobile Services?Automatisch generierter REST-basierter Web-Services mit• Zugriff auf strukturierten Spe...
DEMO Überblick Windows Azure Portal Anlegen eines Azure Mobile Services
Nutznung der Azure Mobile ServicesPrerequisites• Windows Azure Account, z. B. den 90-Tage “Free Trial” oderein passendes M...
Sicht auf die DatenClient-Seite Jeder Zugriff geht auf genau eine Tabellen Keine Joins möglich Vorteil: Man kann nicht ...
Das REST API der Azure Mobile ServicesREST API auf Tabellen einer SQL Server DatenbankUnterstützte HTTP-Verben• GET – Eine...
Zugriffsrechte pro Tabelle und OperationDie vier Operationen je Tabelle• INSERT (http POST)• UPDATE (http PATCH)• DELETE (...
Anlegen einer Tabelle im Portal
Default einer neuen TabelleAutomatische ID-Spalte mit Index drauf
DEMO Anlegen einer Tabelle REST API mit Hilfe von POSTMAN ausprobieren Dynamisches Schema Zugriffskontrolle
ZugriffsschlüsselApplication Key Nur für Entwicklung und Tests verwenden Nicht in fertige App einbauen(besser Benutzerau...
Serverseitiges ScriptingEin Script pro Operation (insert, update, delete, read) undpro Tabelle Basierend auf node.js Zur...
Serverseitiges ScriptingStandard-Script am Beispiel der Insert-Operationitem: das einzufügende Itemuser: der angemeldete B...
Serverseitiges ScriptingVeränderung des einzufügenden ItemsVor dem InsertSpalte füllen.
Serverseitiges ScriptingÄndern des Ergebnisses nach executeJavaScript ist hier besser geeignet als C#Nach dem LesenElement...
Serverseitiges ScriptingLoggingLog viaconsole Objekt
Serverseitiges ScriptingErgebnisse vollständig selbst berechnenEigener HTTPStatuscode undeigenes Ergebnis
Stets vorhandene JavaScript ObjekteTableOperationen aufTabellentablesOperationen aufTabellenmssqlDatenbankzugriffüber Tran...
Weitere Module über require("…")apnsApple PushNotification ServiceazureWindows AzureSDKrequestExterner RESTServicempnsWind...
Anprogrammieren der Mobile Services Portal generiert Beispiel-Apps• Windows / WinRT• Windows Phone 8• iOS, Androis, HTML•...
Quick Start im Azure Portal
Beispielprojekt „Event Buddy“Anlegen von Events, Sessions und deren BewertungEntitiesEventRatingChannelSession
Initialisierung des Mobile Service Clientssealed class App : Application{// Create Mobil Service Client singleton in App c...
public class MyData{[JsonProperty(PropertyName = "id")]public int Id { get; set; }[JsonProperty(PropertyName = "name")]pub...
REST Operationen in CodeEinfügen neues Element (http POST)await App.MobileService.GetTable<MyData>().InsertAsync(item);Akt...
DEMO Anlegen eines neuen Events in Event Buddy App
private async Task SaveEvent(Event item){// Save a new event.await App.MobileService.GetTable<Event>().InsertAsync(item);E...
private async Task LoadEvents(){// Query for all existing events.Events = await App.MobileService.GetTable<Event>().ToEnum...
Benutzer-AuthentifizierungAzure Mobile Services hat vier fertige Identity-Provider• Microsoft Account (Live ID)• Facebook ...
Vorteile der fertigen Provider Keine eigene Benutzerverwaltung Sicherheit für den Anwender, denn App kennt dieCredential...
Vorbereitung des Logins via TwitterTwitter die eigene Anwendung bekannt machen• https://dev.twitter.com/apps
Anlegen einer neuen ApplicationDer Mobile Service wird bei Twitter registriert(nicht die eigentliche App)
Twitter generiert die OAuth Settings
Eintragen in den Mobile Service
public async Task LoginTwitter(){var user = App.MobileService.CurrentUser;while (user == null){string message;try{user = a...
DEMO Mit Twitter-Konto anmelden
Twitter Bild-URL speichern
Push Notification Via Script werden Notifications an registrierte Gerätegeschickt(Demo mit Windows Phone)
Scheduler JobsPeriodischen Ausführen eines Scripts• Bereinigen der Datenbank• Archivierung alter Datensätze• Verarbeiten v...
Anlegen eines neuen JobsMaximal 1 Job bei einem kostenlosem Mobile Servicemöglich
Beispiel JobLöschen doppelter Channel-Einträge
Azure Console Anlegen und Konfigurieren von Mobile Services perPowerShell Commandline Beispielsweise Backup der Scripts ...
Skalierbarkeit des Services
Beispiel Szenario 1Daten synchronisieren zwischen GerätenMobileServicePhone 8WindowsiPhoneAndroidBrowserDBWeb-Service
Beispiel Szenario 2 (ohne WAMS)Eine Anwendung mit vielen DatenquellenWenn API sich irgendwo ändert, crasht die AnwendungAn...
Beispiel Szenario 2 (mit WAMS)Datenintegration über „Single API“ mit Mobile ServicesSharePointAnwendungFacebookXML-Feedetc...
Azure Mobile ServicesWieso eigentlich Mobile Services?
Was ich zurzeit gerade damit mache… Überwachung der Kondensatpumpe (Heizung) und derAlarmanlage Sensorenabfrage mit Ardu...
Fazit Alles was man für sein App Backend braucht Einstieg einfach und kostenlos Fertige Bausteine „out of the box“ Kei...
Mehr Info zu Mobile Services Josh Twisthttp://www.thejoyofcode.com/ Carlos Figueirahttp://blogs.msdn.com/b/carlosfigueir...
Das war’sVielen Dank für Eure AufmerksamkeitFragen?Stefan.Lange@empira.de
Upcoming SlideShare
Loading in …5
×

dotnet Cologne 2013 - Windows Azure Mobile Services

1,932 views
1,810 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,932
On SlideShare
0
From Embeds
0
Number of Embeds
1,395
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

dotnet Cologne 2013 - Windows Azure Mobile Services

  1. 1. Stefan Langeempira Software GmbHStefan.Lange@empira.deEinführung in dieWindows Azure Mobil Services03.05.2013
  2. 2. Agenda Warum Azure Mobile Services? Überblick Features Beispielanwendung Einsatzszenarien FazitFragen / Diskussion
  3. 3. Was sind die Azure Mobile Services?Automatisch generierter REST-basierter Web-Services mit• Zugriff auf strukturierten Speicher (MSSQL Server)• Zugriffskontrolle• Server-seitiges Scripting• Authentifizierung• Notifications• Diagnose und Logging• SkalierbarAlles was man als Backend für seine App braucht
  4. 4. DEMO Überblick Windows Azure Portal Anlegen eines Azure Mobile Services
  5. 5. Nutznung der Azure Mobile ServicesPrerequisites• Windows Azure Account, z. B. den 90-Tage “Free Trial” oderein passendes MSDN AboNutzung derPreview-Versionmuss manfreischalten
  6. 6. Sicht auf die DatenClient-Seite Jeder Zugriff geht auf genau eine Tabellen Keine Joins möglich Vorteil: Man kann nicht so leicht was falsch machenServer-Seite Default: Durchreichen der Operation an die Datenbank Flexibel erweiterbar durch Script-Code Ebenfalls sehr einfaches Konzept Joins prinzipiell über Views möglich, aber nicht zuempfehlen
  7. 7. Das REST API der Azure Mobile ServicesREST API auf Tabellen einer SQL Server DatenbankUnterstützte HTTP-Verben• GET – Einen oder mehrere Einträge abfragen• POST – Neuen Eintrag anlegen• PATCH – Einen Eintrag aktualisieren• DELETE – Eintrag löschenURI-Formathttps://<service_name>.azure-mobile.net/tables/<table_name>[/<item_id>] Bei GET ggf. noch weitere Parameter wie where, skip, take, etc. Das Datenformat ist JSON
  8. 8. Zugriffsrechte pro Tabelle und OperationDie vier Operationen je Tabelle• INSERT (http POST)• UPDATE (http PATCH)• DELETE (http DELETE)• READ (http GET)Mögliche Berechtigungen je Operation• Everyone• Anybody with the Application Key• Only Authenticated Users• Only Scripts and Admins
  9. 9. Anlegen einer Tabelle im Portal
  10. 10. Default einer neuen TabelleAutomatische ID-Spalte mit Index drauf
  11. 11. DEMO Anlegen einer Tabelle REST API mit Hilfe von POSTMAN ausprobieren Dynamisches Schema Zugriffskontrolle
  12. 12. ZugriffsschlüsselApplication Key Nur für Entwicklung und Tests verwenden Nicht in fertige App einbauen(besser Benutzerauthentifizierung verwenden)Master Key Administration, Backup, Installation Server zu Server Kommunikation Auf gar keinen Fall rausgeben Kann Scripts abschalten
  13. 13. Serverseitiges ScriptingEin Script pro Operation (insert, update, delete, read) undpro Tabelle Basierend auf node.js Zurzeit JavaScript, weil universell verwendbar(C# ist aber ganz oben auf der Wunschliste)node.js basiert auf Googles JavaScript Technologie undläuft jetzt auf Microsoft Azure Servern
  14. 14. Serverseitiges ScriptingStandard-Script am Beispiel der Insert-Operationitem: das einzufügende Itemuser: der angemeldete Benutzerrequest: das Requestobject dieser OperationDefaultImplementierung
  15. 15. Serverseitiges ScriptingVeränderung des einzufügenden ItemsVor dem InsertSpalte füllen.
  16. 16. Serverseitiges ScriptingÄndern des Ergebnisses nach executeJavaScript ist hier besser geeignet als C#Nach dem LesenElementhinzufügen bzw.löschen
  17. 17. Serverseitiges ScriptingLoggingLog viaconsole Objekt
  18. 18. Serverseitiges ScriptingErgebnisse vollständig selbst berechnenEigener HTTPStatuscode undeigenes Ergebnis
  19. 19. Stets vorhandene JavaScript ObjekteTableOperationen aufTabellentablesOperationen aufTabellenmssqlDatenbankzugriffüber Transact-SQLUserAktueller UserconsoleLoggingstatusCodesHTTP Status Codes
  20. 20. Weitere Module über require("…")apnsApple PushNotification ServiceazureWindows AzureSDKrequestExterner RESTServicempnsWindows Phone 8Push NotificationServicesendgridE-Mail ServicewnsWindows StoreNotification Service
  21. 21. Anprogrammieren der Mobile Services Portal generiert Beispiel-Apps• Windows / WinRT• Windows Phone 8• iOS, Androis, HTML• Beliebige via REST APIPrerequisites• Visual Studio 2012• Windows Phone SDK 8.0• Live SDK for Windows and Windows Phone (optional)• Ggf. weitere Tools für iOS oder Android• Windows Azure Account oder 90 Tage “Free Trial”
  22. 22. Quick Start im Azure Portal
  23. 23. Beispielprojekt „Event Buddy“Anlegen von Events, Sessions und deren BewertungEntitiesEventRatingChannelSession
  24. 24. Initialisierung des Mobile Service Clientssealed class App : Application{// Create Mobil Service Client singleton in App class.public static MobileServiceClient MobileService =new MobileServiceClient("https://eventbuddy-stla.azure-mobile.net/","YGClaqlKzjZrf3iUIQLyLzCwBzUJyg57");…}Grundprinzip: „Keep it simple“Application Key
  25. 25. public class MyData{[JsonProperty(PropertyName = "id")]public int Id { get; set; }[JsonProperty(PropertyName = "name")]public string Name { get; set; }[JsonProperty(PropertyName = "start")]public DateTime Start { get; set; }[JsonProperty(PropertyName = "end")]public DateTime End { get; set; }[JsonProperty(PropertyName = "description")]public string Description { get; set; }}Beispielhafte Datamodel KlassePropertyName weilJSON camelCasingverwendet
  26. 26. REST Operationen in CodeEinfügen neues Element (http POST)await App.MobileService.GetTable<MyData>().InsertAsync(item);Aktualisieren eines Elements (http PATCH)await App.MobileService.GetTable<MyData>().UpdateAsync(item);Löschen eines Elements (http DELETE)await App.MobileService.GetTable<MyData>().DeleteAsync(item);Lesen von Elementen (http GET)in Kombination mit Where, Skip, Take, etc.await App.MobileService.GetTable<MyData>().ReadAsync(…);
  27. 27. DEMO Anlegen eines neuen Events in Event Buddy App
  28. 28. private async Task SaveEvent(Event item){// Save a new event.await App.MobileService.GetTable<Event>().InsertAsync(item);Events.Add(item);}Speichern eines neuen EventsNach dem Aufruf hatitem eine gültige Iderhalten.
  29. 29. private async Task LoadEvents(){// Query for all existing events.Events = await App.MobileService.GetTable<Event>().ToEnumerableAsync();}public dynamic Events{get { return _events; }set{_events.Clear();foreach (var item in value)_events.Add(item);}}readonly ObservableCollection<Event> _events = new ObservableCollection<Event>();Laden der Events
  30. 30. Benutzer-AuthentifizierungAzure Mobile Services hat vier fertige Identity-Provider• Microsoft Account (Live ID)• Facebook Login• Twitter Login• Google Login• (weitere in Vorbereitung…)
  31. 31. Vorteile der fertigen Provider Keine eigene Benutzerverwaltung Sicherheit für den Anwender, denn App kennt dieCredentials nicht Man kann sich auf seine eigentliche Anwendungkonzentrieren Eigener Identity Provider ist ein Projekt für sich undzudem noch ein ziemlich anspruchsvolles
  32. 32. Vorbereitung des Logins via TwitterTwitter die eigene Anwendung bekannt machen• https://dev.twitter.com/apps
  33. 33. Anlegen einer neuen ApplicationDer Mobile Service wird bei Twitter registriert(nicht die eigentliche App)
  34. 34. Twitter generiert die OAuth Settings
  35. 35. Eintragen in den Mobile Service
  36. 36. public async Task LoginTwitter(){var user = App.MobileService.CurrentUser;while (user == null){string message;try{user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Twitter);message = string.Format("You are now logged in as {0}",user.UserId);}catch (InvalidOperationException){message = "You must log in. Login Required";}var dialog = new MessageDialog(message);dialog.Commands.Add(new UICommand("OK"));await dialog.ShowAsync();}}Login
  37. 37. DEMO Mit Twitter-Konto anmelden
  38. 38. Twitter Bild-URL speichern
  39. 39. Push Notification Via Script werden Notifications an registrierte Gerätegeschickt(Demo mit Windows Phone)
  40. 40. Scheduler JobsPeriodischen Ausführen eines Scripts• Bereinigen der Datenbank• Archivierung alter Datensätze• Verarbeiten von Datensätzen, z.B. Bilder skalieren• Verschicken von Nachrichten
  41. 41. Anlegen eines neuen JobsMaximal 1 Job bei einem kostenlosem Mobile Servicemöglich
  42. 42. Beispiel JobLöschen doppelter Channel-Einträge
  43. 43. Azure Console Anlegen und Konfigurieren von Mobile Services perPowerShell Commandline Beispielsweise Backup der Scripts aller Tabellen Verwalten von Dev/Staging/Prod Services
  44. 44. Skalierbarkeit des Services
  45. 45. Beispiel Szenario 1Daten synchronisieren zwischen GerätenMobileServicePhone 8WindowsiPhoneAndroidBrowserDBWeb-Service
  46. 46. Beispiel Szenario 2 (ohne WAMS)Eine Anwendung mit vielen DatenquellenWenn API sich irgendwo ändert, crasht die AnwendungAnwendungSharePointFacebookXML-Feedetc.
  47. 47. Beispiel Szenario 2 (mit WAMS)Datenintegration über „Single API“ mit Mobile ServicesSharePointAnwendungFacebookXML-Feedetc.MobileService
  48. 48. Azure Mobile ServicesWieso eigentlich Mobile Services?
  49. 49. Was ich zurzeit gerade damit mache… Überwachung der Kondensatpumpe (Heizung) und derAlarmanlage Sensorenabfrage mit Arduino-Bord über USB an einenWindows-Service in einem PC• Info aufs Handy wenn Pumpe ausfällt• Status der Alarmanlage abfragenAlarmanlage• scharf• Alarm• SabotagePumpe• an/ausWindowsDienstMobileService
  50. 50. Fazit Alles was man für sein App Backend braucht Einstieg einfach und kostenlos Fertige Bausteine „out of the box“ Keine „externen“ Hürden mehr bei der App-Entwicklung Focus auf die Apps, nicht auf die Infrastruktur Auch über Mobile Szenarien hinaus praktischSuper coole Sache – unbedingt ausprobieren
  51. 51. Mehr Info zu Mobile Services Josh Twisthttp://www.thejoyofcode.com/ Carlos Figueirahttp://blogs.msdn.com/b/carlosfigueira/ Nick Harrishttp://www.nickharris.net/
  52. 52. Das war’sVielen Dank für Eure AufmerksamkeitFragen?Stefan.Lange@empira.de

×