Cross-Plattform-Entwicklung mit Xamarin und Window Azure
Zwei Lösungen, eine App
- windows.developer 01/2017
Durch die steigende Relevanz mobiler Anwendungen wollen oder müssen viele Anbieter ihren Kunden Apps zur Verfügung stellen. Aufgrund der unterschiedlichen Plattformen sind sie allerdings gezwungen, eine Menge an Ressourcen aufzubringen, um die am meisten verbreiteten Plattformen bedienen zu können. Die Plattformen basieren nämlich auf unterschiedlichen Technologien und erfordern gesonderte Entwicklungsleistung. Wer sich überlegt, nur eine dieser Plattformen zu bedienen, muss allerdings nicht selten mit Wettbewerbsnachteilen und Umsatzschwierigkeiten rechnen.
Es gibt jedoch auch Möglichkeiten, mehrere Plattformen unter der Verwendung einer einzigen Technologie zu beliefern, nämlich durch so genannte Cross-Plattform-Apps. Wer sich für eine Umsetzung mittels Cross-Plattform-Technologien entscheidet, profitiert idealerweise durch die Auslagerung der Geschäftslogik an eine zentrale Stelle zur Verwendung auf allen Geräten – mit dem angenehmen Nebeneffekt einer möglichen Kostensenkung in der Entwicklung. Häufig jedoch werden Cross-Plattform-Apps lediglich als eingebettete Webseiten entwickelt, aber weder das Aussehen noch das Verhalten der nativen Umgebung lassen sich dadurch wiedergeben. Will man das anders machen, bietet sich die Kombination aus zwei Lösungen an: Xamarin bietet ein natives Look and Feel für iOS-, Android- und Windows-10-Apps. Azure ist die Antwort auf die Frage, wie sich Daten zentral verteilen lassen, um sie über Geräte hinweg synchron halten zu können.
Xamarin - C# für überall
Xamarin bringt die volle Ladung Cross-Plattform-Action für C#-Experten: Das Schreiben von nativen Apps für Apples iOS, Googles Android und Microsofts UWP Plattform ist keine Utopie mehr. Die mit Xamarin erstellten Apps entsprechen im Aussehen, im Verhalten und in Bezug auf ihre Performance den nativ entwickelten Apps. Durch die Verwendung von C# mit einem Großteil der Funktionalitäten des .NET Frameworks (abgesehen von wenigen Ausnahmen, wie z. B. Sockets), entfällt auch die Einarbeitung in eine native Sprache der jeweiligen Plattform. Möglichkeiten zur Wiederverwendung von Implementierungen sind durch Shared oder Portable Class Libraries gegeben, auch wenn hier diverse Implementierungen wieder in der jeweiligen App stattfinden müssen, z. B. der Zugriff auf lokale Ressourcen. Mittels Xamarin.Forms kann man auch das UI an einer zentralen Stelle entwickeln. Für stark optimierte Apps, in denen es mehr auf die Performance als die gemeinsame Codebasis ankommt, bietet Xamarin aber auch mit Xamarin.iOS und Xamarin.Android die Möglichkeiten, die jeweilige Oberfläche speziell für die Zielplattform zu programmieren.
Im Februar 2016 wurde die Firma Xamarin von Microsoft übernommen. Die nun kostenlos und einfach in Visual Studio zu integrierenden Tools erweitern den offiziellen Technologiestack von Microsoft, stehen bereits mit der Installation von Visual Studio 2015 zur Verfügung oder können zusätzlich für die Visual Studio Community Edition von der offiziellen Homepage bezogen werden. Für Benutzer unter macOS steht das eigenständige Xamarin Studio kostenlos zum Download bereit [1]. Die von Xamarin bereitgestellten Angebote gehen über die reine Entwicklerarbeit hinaus, und mit Xamarin Test Cloud ist unter anderem auch ein Produkt verfügbar, das Tests auf all den verschiedenen Endgeräten möglich macht.
Azure - In der Cloud
XMit Azure bietet Microsoft eine Cloud-basierte Lösung für die meisten Anwendungsfälle an, seien es virtualisierte Maschinen, Online-SQL-Datenbanken oder auch das Monitoring diverser Endpunkte mittels Application Insights. Diese und weitere Technologien lassen sich ohne weiteres in die mobilen Apps integrieren, für die auch fertige Ansätze sowohl für mobile Clients wie auch das Backend zur Verfügung stehen. Seit Mitte 2016 ist es auch möglich, die eigene Azure-Cloud-Infrastruktur in deutsche Rechenzentren auszulagern. Damit bindet sich auch der Cloud-Anbieter an das deutsche Datenschutzgesetz, was das Vertrauen der ansonsten skeptischen deutschen Anwender stark erhöhen dürfte. Außerdem wird die Verwendung auch aus rechtlicher Sicht deutlich vereinfacht. Für Benutzer mit einer aktiven MSDN Subscription steht ein monatlicher Freibetrag von 130 Euro zur Verfügung, mit dem bereits Dienste von Azure für nichtkommerzielle Testzwecke genutzt werden können. Natürlich müssen dabei auch ein paar Abstriche in der Ausstattung oder Laufzeit gemacht werden, aber zum Testen der Möglichkeiten in Azure ist das ausreichend. Für alle anderen Interessierten bietet Microsoft die Möglichkeit, Azure einen Monat lang kostenlos zu testen [2].
Xamarin und Azure sind zwei mächtige Technologien, doch im Verbund harmonisieren sie nicht nur sehr gut miteinander, sondern liefern auch schnelle und zufriedenstellende Ergebnisse in der Entwicklung. Was das neue Dreamteam Xamarin und Azure alles kann, wird im Folgenden gezeigt.
Schnell und einfach zur eigenen App
Xamarin und Azure bieten im Zusammenspiel vielfältige Möglichkeiten, um schnell und effizient mobile Anwendungen plattformübergreifend zu entwickeln. Eine mobile Anwendung besteht dabei aus zwei Komponenten: Der Xamarin-Clientanwendung, die das UI und die Rechenoperationen auf dem mobilen Endgerät repräsentiert, und dem Backend, das für geteilte Daten und intensivere Rechenoperationen über Azure genutzt wird.
Erstellen einer Azure-Mobile-App
Das Backend kann dabei durch die so genannten „Mobile-Apps“ von Azure bereitgestellt werden. Das geschieht über das Azure-Portal, indem eine neue Instanz eben dieser Mobile-Apps angelegt wird. Dazu muss auf Azure nach Neu | Web + Mobil | Mobile Apps navigiert werden. Hier kann man einen Namen für die Mobile-App vergeben und einen Serviceplan auswählen, der die Leistung der Instanzen, auf denen die Mobile-App gehostet wird, bestimmt (Abb. 1), [3].
Mit Klick auf Create stehen unmittelbar die konfigurierten Instanzen bereit, …