Apps plattform- und dienstübergreifend entwickeln mit Azure und Xamarin
Ein starkes Team
Mit dem Kauf von Xamarin Anfang 2016 hat Microsoft bei vielen .NET-Entwicklern, die bisher für Windows entwickelt hatten, Interesse für dieses Produkt geweckt. Es erlaubt, C#-basierende Programme als native Apps sowohl für das Apple- als auch das Android-Betriebssystem mithilfe von Visual Studio 2015 zu entwerfen. Aber was ist eine Anwendung ohne Daten? Viele Apps beziehen Daten von einem eigenen Server oder aus der Cloud. Microsofts Cloud-Computing-Plattform Azure bietet mit Azure App Services (ehemals Mobile Services) eine „Platform-as-a-Service“. Enthalten sind Mobile Apps und Xamarin, mit denen sich hoch skalierbare Mobil-Lösungen entwickeln lassen.
Azure Mobile Apps sind aber mehr als eine Oberfläche und ein Backend (siehe Bild 1), in dem die Daten gespeichert werden und auf das die Oberfläche per Rest-API zugreift. Neben der Datenhaltung spielen auch folgende Themen bei der Entwicklung von Apps eine wichtige Rolle.
Datenzugriff: Azure stellt dem Benutzer verschiedene Formen der Datenhaltung zur Verfügung. Neben der Datenbank
Azure SQL lassen sich Daten unter anderem in Mongo DB, Tabellen- oder Blob-Speicher sichern. Der Zugriff kann wie
gewohnt über das Entity Framework erfolgen.
Offline-Synchronisierung: Auch wenn man heute gewohnt ist, überall mit dem Smartphone Internetzugriff zu haben,
gibt es immer wieder Orte ohne Empfang. Trotzdem soll die App zum Erfassen von Daten nutzbar sein und sollen sich
diese synchronisieren, sobald wieder eine Internetverbindung besteht. Das Client-SDK stellt hierzu ein Offline-Datenset sowie Mechanismen zur automatischen Synchronisierung mit dem Backend und zur automatischen Konfliktlösung zur Verfügung.
Benutzerauthentifizierung: Gerade wenn Daten gespeichert werden, muss klar sein, zu wem diese Daten gehören. Dafür müssen die Nutzer authentifiziert und autorisiert werden. Hierzu gibt es bereits eine Reihe von Identitätsanbietern,
die von Azure unterstützt werden. Für B2B-Apps wird vermutlich eher das Azure Active Directory genutzt, das sich auch mit dem firmeninternen Active Directory synchronisieren lässt. B2C-Apps dagegen werden eher Identitätsanbieter
wie Facebook, Google oder Microsoft nutzen, um die Einstiegshürden zum Einsatz der Apps möglichst gering zu halten. Egal welches Szenario gewünscht ist, die Mobile Apps stellen über OAuth 2.0 einen passenden Dienst bereit.
Push-Benachrichtigungen: Was wäre eine WhatsApp-Anwendung ohne Push-Nachrichten? Sicher würden es deutlich weniger Menschen benutzen, wenn sie immer erst in die App gehen müssten, um zu sehen, ob neue Nachrichten angekommen sind. Das Client-SDK bietet auch hier eine einfache Möglichkeit, sich in die Azure Notification Hubs einzuklinken und die Nutzer der App individuell zu einem bestimmten Zeitpunkt über Ereignisse zu informieren.
Xamarin-APP mit Azure-Backend
Genug Theorie. Wie sieht es mit der Praxis aus? …