16. Juli 2020 / von Alexander Nawroth

Universal

Windows

Platform

Ein Design, überall

Was ist UWP?

Mit Windows 10 hat Microsoft die „Universal Windows Platform“ (kurz UWP) eingeführt.

Es scheint die ideale Plattform zu sein, um eine einzige Anwendung auf allen Microsoft-Produkten zum Laufen zu bringen. Doch, ist das wirklich so? Das möchte ich mir genauer anschauen.

Microsoft hat mit UWP ein einheitliches System geschaffen, welches auf all ihren Plattformen läuft. Mit einer gemeinsamen Codebasis werden verschiedene Zielgeräte beliefert, egal, ob Desktop-PC, Laptop, Tablet, Smartphone, Xbox One / One X, der Hololens oder das Microsoft Windows 10 IoT-System, wie z.B. für den Raspberry PI.

UWP auf diversen Endgeräten

UWP auf einem Lego-Roboter

Die Idee, dass es ein Design gibt, welches auf vielen Geräten läuft, klang für mich sehr interessant. Deshalb habe ich beschlossen zu untersuchen, wie UWP auf verschiedenen Windows-Geräten funktioniert.

Für meinen Test habe ich eine UWP-App für die Steuerung eines Lego-Roboters geschrieben. Der Roboter kann in verschiedene Richtungen gesteuert werden und Kugeln verschießen. Zusätzlich besitzt der Roboter Sensoren für Farberkennung und Abstandsmessung.
Die Steuerung des Roboters hat mit UWP auf verschiedenen Endgeräten funktioniert. Testen konnte ich das auf einem PC mit 21:9 Monitor, Windows-Laptop (16:9), Surface Pro (4:3), Hololens und einem Windows 10 Smartphone.

Einsatz von UWP

Um UWP auf allen Plattformen einheitlich nutzen zu können, benötigen alle Plattformen die gleiche UWP-Version. Alle Plattformen sollten daher regelmäßig aktualisiert werden.
Die HoloLens jedoch muss mit älteren Versionen leben und hinkt hinterher. Sie bekommt nur noch die nötigsten Updates. Welche Möglichkeiten ihr Nachfolger, die HoloLens 2, bietet, konnte ich leider nicht testen.
Von der Mobile-Sparte wollen wir gar nicht erst reden. Windows 10 Mobile wurde von Microsoft eingestellt. Schon aus Neugier und weil ich ein Microsoft Smartphone noch zu Testzwecken besitze, habe ich es auch direkt für diesen Versuch eingebunden.
Daher musste bei der Entwicklung für verschiedene Endgeräte der kleinste gemeinsame Nenner gewählt werden.

Einen eindrucksvollen Überblick über alle UWP-UI-Elemente bietet die von Microsoft entwickelte Windows-10-App „XAML Controls Gallery“ aus dem Windows Store. Zusätzlich zum Source-Code wird auf GitHub eine umfangreiche Auswahl an Beispielen für die Arbeit mit den UWP-Elementen angeboten. Diese Beispiele bilden eine gute Basis für die Anbindung der verschiedenen Events und Möglichkeiten des Windows-Systems. Egal ob ein einfacher Kalender oder Taschenrechner, komplexere Möglichkeiten mit Sensorabfragen, Touch-Eingaben, (W)LAN-Steuerung oder die Darstellung von 3D-Objekten ist – für fast alle Szenarien gibt es hier Beispiele.

UWP-Anwendungen werden in den Sprachen C#, Visual Basic .NET, Visual C++ oder JavaScript geschrieben. Die Benutzeroberfläche wird in einer XML ähnlichen Struktur in XAML geschrieben. Diese Beschreibungssprache wird schon seit .NET 3.0 in der „Windows Presentation Foundation“ (WPF) angewendet.

UWP Vs. WPF

UWP ist als eine Sandbox-Anwendung ausgelegt und bildet ein in sich abgeschlossenes System, welches die Sicherheit im Umgang mit dem Betriebssystem und anderen Anwendungen verbessert. Es ist für die App-Systemlandschaft ausgelegt, kann über den Store verteilt werden und läuft auf vielen Microsoft-Geräten. Der Zugriff auf das Kachelsystem von Windows ist ein weiterer Unterschied zu WPF. Letzteres ist inzwischen auch ziemlich in die Jahre gekommen, aber genau das macht es wiederum so gut. Es ist ausgereift!

Auch, wenn die Oberflächen der beiden Systeme mit XAML definiert werden, unterscheiden sie sich in wichtigen Punkten. Zum einen sorgt das Konzept für die Benutzerführung für eine andere Gestaltungen des UI. Der XAML-Code wird auf unterschiedliche Weise strukturiert. Auf der anderen Seite bedient sich UWP auch eines anderen Dialekts. Hier unterscheiden sich vor allem die Namespaces. Viele Controls werden zudem etwas anders angesprochen oder existieren (noch) nicht.

In manchen Controls ist UWP jedoch weiter, als WPF oder die normalen Win32-Anwendungen. Für Windows 10 wurden einige zusätzliche Elemente entwickelt. Zum Beispiel das MapControl: In UWP einfach eine Karte laden und anzeigen, mit WPF jedoch schwierig oder verlangt nach Drittanbieter. Damit auch die alten Technologien in den Genuss der UWP-Elemente kommen, wurde „XAML Islands“ entwickelt. Damit können viele Elemente aus Windows 10, die nur mit UWP funktionieren würden, für die anderen UI-Technologien bereitgestellt werden. Das klingt sehr interessant, ich aber in diesem kleinen Test nicht weiter darauf eingehen.

Die Entwicklung der UI in einer UWP-Anwendung ist für alle Geräte gleich; wenn eine Regel beachtet wird: Das Format muss auf allen Endgeräten identisch sein. Monitore, Fernseher und die Hololens verwenden das Breitbild zur Anzeige, auch Landscape genannt. Werden die mobilen Geräte ausschließlich in diesem Format genutzt, dann reicht eine XAML-Definition für alle Endgeräte. Soll die Darstellung speziell für die Anzeige der unterschiedlichen Endgeräte optimiert werden, müssen mehrere Definitionen angelegt werden. Dafür gibt es von Microsoft Vorgaben, wie die Dateien benannt werden müssen, dann werden beim Bauen für die verschiedenen Endgeräte die speziellen UI-Dateien herangezogen. Nutze ich als einheitlichen Standard eine ältere Version von UWP, muss ich klar damit rechnen, dass nicht alle Funktionen und Elemente zur Verfügung stehen. So konnte ich einen Ladebalken nicht durch den „ProcessRing“ darstellen, da dieser erst mit Windows 20H1 herauskommt.

Ich konnte einen Freund überreden meine Anwendung auf seiner Xbox zu testen. Die Oberfläche war aufgrund des Fernsehers sehr ähnlich den normalen Laptop-Bildschirmen. Einzig die Steuerung mit dem Xbox-Controller ist verbesserungswürdig. Die hatte ich aber auch nie in meine Tests einbezogen.

Der Einsatz von UWP für die verschiedenen Endgeräte funktionierte problemlos und hat sich für meinen kleinen Testlauf bewährt. Je identischer die Windows-Versionen zwischen den Geräten ist, desto weniger Einschränkungen muss ich in kauf nehmen. Die Entwicklung der Oberfläche ging zügig, da XAML eine sehr übersichtliche Definition ist und auch Microsoft sehr viele Beispiele, sowie umfangreiche Doku für alle Elemente bereithält.

Ist UWP schon wieder tot?

Trotz der Doku und den Beispielen auf Git; dieses Gefühl, dass es zu UWP nichts neues gibt, bekommt man, wenn man mit UWP arbeitet. Wird es überhaupt noch weiterentwickelt oder sieht es Microsoft als vollendet an? Von Microsoft wird leider sehr wenig Neues zu UWP gesagt. Das Problem liegt wohl daran, dass es in das WinUI Paket ausgelagert wurde und nicht mehr direkt UWP heißt. Microsoft hat ja eine Affinität dafür, bekannten Technologien einen neuen Namen zu geben. Name hin oder her, durch die Auslagerung kommt nicht immer nur das aktuellste Windows in den Genuss der neusten UWP Versionen, es kann auch mit älteren Windows 10-Versionen genutzt werden. Mit XAML-Islands wird neuerdings eine Kompatibilität zu anderen Frontend-Technologien hergestellt. Auch mit Xamarin können UWP-Elemente genutzt werden. Also streng nach dem Motto: „Totgesagte leben länger“ hat sich mit UWP eine interessante und stabile Technologie ins Microsoft-Portfolio geschlichen und breitet sich immer noch weiter aus.

Autor

Weitere Artikel

Das könnte Sie auch interessieren