Windows 8.1 App-Entwicklung: Ein wichtiges Stück Evolution

6. Januar 2014

Windows 8.1 kommt mit einigen Neuerungen für App-Entwickler daher, die teilweise auch dem Endanwender zugute kommen und neue Einsatzszenarien ermöglichen. Doch es gibt auch Dinge, die sich leider nicht geändert haben. Auf einige essentielle Punkte geht der nachfolgende Artikel ein.

Good news

In der Privatbilanz-App wurden bereits 2 wesentliche Neuerungen von Windows 8.1 umgesetzt: Die neuen Größen für Live Tiles sowie die neue flexible Side-by-Side-Ansicht. Diese Features bieten dem Endanwender ein individuelleres Nutzererlebnis und erhöhen die Produktivität durch mehr Flexibilität. Entwickler sollten sie bei der Adaption von Windows 8.1 berücksichtigen.

Neue Anwendungsszenarien vor allem für Windows 8.1 Tablets werden durch den neuen Kiosk-Modus (offiziell “Assigned Access”) eröffnet. Dadurch ist es möglich, die Modern UI auf die Ausführung einer einzigen App zu begrenzen, die stets im Vordergrund läuft und von Benutzern nicht verlassen werden kann. Gerade auf Expos, Messen und in Hotels ein häufig gefordertes Feature. Unter Windows 8.1 ist die Einrichtung des Kiosk-Modus etwas versteckt. In der deutschen Version ist die Funktion unter “PC-Einstellungen –> Konten –> Weitere Konten –> Konto für zugewiesenen Zugriff einrichten” zu finden.

Auch andere Funktionen ermöglichen neue App-Szenarien. So ist es für Apps nun möglich, ad hoc einen VPN-Tunnel in ein Unternehmensnetzwerk zu öffnen. Weiterhin wird endlich ein umfassender Hardwarezugriff unterstützt. Entwickler haben dabei die Möglichkeit, über WinRT verschiedene gängige Schnittstellen wie USB, Bluetooth, 3D-Drucker, Scanner und PoS-Systeme anzusprechen. Gerade individuelle Hardware-Lösungen mit einer App als Auswertungs- und Steuerzentrale profitieren davon. Interessant ist auch die sogenannte Geofencing-Funktion. Diese ermöglicht es einer App Benachrichtigungen an den Benutzer zu senden, wenn dieser einen räumlich begrenzten Bereich betritt bzw. verlässt. Anwendung könnte diese Funktion beispielsweise bei Reiseführern, Restaurant-Guides, für lokale Coupon-/Schnäppchen-Angebote oder bei Erinnerungs-Apps finden.

Für Entwickler bietet die neue Version der WinRT einige Neuerungen. Insgesamt ist die Plattform funktionaler und performanter geworden. Entwickler stehen neue bzw. überarbeitete XAML-Controls zur Verfügung, z.B. Hub, DatePicker/TimePicker, SearchBox, CommandBar, eine stark verbesserte WebView. Endlich werden auch Grundlagen wie Binding Expressions, Behaviors und Update Source Triggers unterstützt, die man aus Silverlight und WPF schon lange kennt. Essentielle Dinge wie Basis-Styles wurden nun in die Plattform integriert, anstatt als separate Dateien in jedem Projekt inkludiert zu sein. Auch die Visual-Studio-Templates für Windows Store Apps machen nun einen aufgeräumteren Eindruck.

Schlussendlich wurde auch das Tooling in Visual Studio 2013 verbessert, wodurch eine effizientere und produktivere App-Entwicklung möglich ist. CodeLens ist beispielsweise ein allgemeines Feature, durch das Informationen zu einer Methode als Hinweis angezeigt werden, z.B. die Versions-Historie oder die Referenzen auf die Methode. Weiterhin gibt es neue Tools für die Analyse von Apps, mit denen die Reaktionsfähigkeit der UI und der Energieverbrauch gemessen werden können. Zudem ist es nun möglich Coded UI Tests für Windows Store Apps anzulegen und damit die UI automatisiert testen zu können.

Bad news

Doch es ist nicht alles Gold was glänzt. Zwar hat Microsoft die Plattform ein gutes Stück weit voran gebracht, dennoch bleibt Grund zur Kritik. So ist einige Basisfunktionalität nicht Bestandteil der Plattform, obwohl man sie dort vermuten würde. Jedes Projekt muss beispielsweise seinen eigenen Satz an Value Convertern für XAML implementieren, auch wenn diese die Grundlage fast jedes Projekts darstellen. Dazu gehören elementare Converter wie ein BooleanToVisibilityConverter oder ein NullToVisibilityConverter. Ebenso beinhalten die Visual-Studio-Templates für Windows Store Apps eine neue Klasse NavigationHelper, welche grundlegende Navigationsfunktionalität beinhaltet. Warum diese kein Bestandteil der Plattform ist, ist nicht nachvollziehbar. Auch zum Aktualisieren von Live Tiles stehen noch immer keine stark typisierten Klassen für die Tile Templates von Haus aus zur Verfügung. Um hierfür XML nicht direkt schreiben zu müssen, existieren Datenstrukturen für die Templates (schwer auffindbar) im App tiles and badges sample, warum ist das aber nicht Bestandteil der Plattform?

Vom Tooling her gibt es zwar etliche Neuerungen, eine gravierende Lücke bleibt aber bestehen: In Windows Store Apps ist es noch immer nicht möglich, eine Code-Coverage-Analyse auszuführen. Zwar ist der entsprechende Menüeintrag in Visual Studio 2013 vorhanden, beim Ausführen erscheint im Ausgabe-Fenster unter “Tests” dann allerdings die Meldung “Code coverage is not available for Windows Store or Windows Phone apps”. Professioneller App-Entwicklung wird mit dem Fehlen dieser Funktion ein großer Stein in den Weg gelegt.

Im Bereich unternehmensrelevanter Features hat sich leider auch an mehreren Stellen nichts getan. In XAML gibt es immernoch keine durchgängige Lösung für die Eingabevalidierung, sodass auf Drittanbieter-Bibliotheken wie WinRT XAML Validation zurückgegriffen werden muss. Auch viele wichtige WCF-Bindings fehlen, z.B. WsHttpBinding oder WsFederationHttpBinding zur Nutzung der WS*-Erweiterungen bzw. der Windows Identity Foundation. Auch gibt es immernoch keine eingebaute Standardlösung für eine lokale Datenbank im App-Speicher. Das sind zwar alles keine definitiven Show Stopper, können je nach Szenario aber sehr sauer aufstoßen und potentielle Unternehmenskunden verschrecken.

Leider hat sich auch im Bereich Enterprise Sideloading -also dem Deployment von Apps außerhalb des Windows Stores- nichts getan. Unternehmen benötigen nach wie vor entweder Windows 8.1 Enterprise oder müssen im 100er-Pack Sideloading-enabled Product Keys (zu je 30$ pro Key) kaufen, wenn sie Windows 8.1 Pro oder Windows RT 8.1 besitzen. Erst dann ist Sideloading möglich. Gerade für kleinere Unternehmen und angepasste Speziallösungen für einen eingegrenzten Kundenstamm ist das ein echtes Problem. Die Konkurrenz von Apple (iOS) und Google (Android) ist hier deutlich restriktionsärmer, was aufgrund des Fokus von Microsoft auf Businesskunden durchaus verwundert und ärgerlich ist.

Fazit

Good news, bad news… Im Fazit stellt Windows 8.1 für App-Entwickler eine wichtige Iteration der Plattform dar, die viele Funktionen nachliefert und an Stabilität gewonnen hat. Es bleibt zu hoffen, dass Microsoft mit der Entwicklung konsequent fortschreitet und vor allem den Fokus auf Unternehmen lenkt, um noch immer schmerzlich vermisste Features zu integrieren.