BASTA! 2014 Countdown

"One Windows" durch Universal Apps
Kommentare

„One Windows“ – diese Vision hat Microsoft-CEO Satya Nadella höchstpersönlich heraufbeschworen, indem er von einem einheitlichen Betriebssystem für alle Geräte sprach. Einen ersten Schritt in diese Richtung stellen die so genannten Universal Apps dar. Welches Konzept hinter ihnen steckt und was Entwickler beachten müssen, erklärt Thomas Claudius Huber in seiner Session auf der BASTA! 2014. Uns hat er bereits im Vorfeld Einblicke in dieses spannende Themenfeld gewährt.

Windows Developer: Auf der BASTA! hältst du eine Session zu den neuen Universal Apps. Erkläre uns doch mal, nach welchem Grundprinzip diese Apps funktionieren.

Thomas Claudius Huber: Mit einer Universal App können Entwickler eine App parallel für Windows (Windows Store App) und Windows Phone erstellen. Dabei lassen sich Code, Controls und sonstige Ressourcen auf beiden Plattformen wiederverwenden. Prinzipiell hatte man vor den Universal Apps zwei Möglichkeiten, um gemeinsamen Code in einer Windows Store App und einer Windows Phone App wiederzuverwenden:

  1. verknüpfte Dateien
  2. Portable Class Libraries (PCL)

Die Universal Apps bauen auf dem ersten Prinzip auf, den verknüpften Dateien. Sie mussten vor der Einführung der Universal Apps händisch im Projekt für Windows Store und Windows Phone hinzugefügt werden. Mit der seit Visual Studio 2013 Update 2 verfügbaren Projektvorlage für Universal Apps ist das Grundprinzip der verknüpften Dateien jetzt deutlich komfortabler geworden.

Bei einer Universal App enthält eine Solution neben den beiden App-Projekten für Windows Store und Windows Phone ein weiteres Projekt namens „Shared“. Der Inhalt dieses Shared-Projekts sind die „verknüpften Dateien“. Sie werden im Build-Prozess automatisch in die Windows Store und Windows Phone App eingebunden, hier können Entwickler also Code, Controls und sonstige Dateien unterbringen.

Da der Code im Shared-Projekt nach wie vor für beide App-Projekte kompiliert wird, kann darin auch mit Compiler-Direktiven gearbeitet werden. So lässt sich plattformspezifischer Code mit der #ifdef-Direktive und den beiden Konstanten WINDOWS_APP und WINDOWS_PHONE_APP ein/auschalten.

Universal Apps vs. Portable Class Libraries

Windows Developer: Worin genau liegen die Unterschiede zwischen dem Konzept der Universal Apps und den Portable Class Libraries?

Thomas Claudius Huber: Portable Class Libraries sind reine .NET-Bibliotheken, weshalb sich Aufrufe der nativen Windows Runtime (WinRT) hier nicht unterbringen lassen.  Sowohl Windows Store Apps als auch Windows Phone Apps bauen jedoch auf der nativen WinRT auf und nutzen nur eine Untermenge von .NET (.NET for Windows Store Apps). 

Im Gegensatz zu den Portable Class Libraries können die in einer Universal App im Shared-Projekt enthaltenen Dateien durchaus WinRT-Aufrufe sowohl für Windows Store als auch für Windows Phone enthalten. Dieses Feature der Universal Apps erklärt sich von selbst, wenn man sich wieder vor Augen führt, dass das Shared-Projekt lediglich verknüpfte Dateien enthält, die beim Buildvorgang mit dem jeweiligen App-Projekt kompiliert werden.

BASTA! 2014

Jede Menge spannende Sessions rund um .NET, Windows und JavaScript gibt es auf der BASTA!, die vom 22. bis zum 26. September in der Mainzer Rheingoldhalle stattfindet und mit über 130 Sessions, Workshops und Keynotes aufwartet. Als Teilnehmer kann man zusätzlich auch die Sessions der gleichzeitig stattfindenden ALM today kostenlos besuchen.

Windows Developer: Gibt es unterschiedliche Einsatzzwecke für diese beiden Konzepte?

Thomas Claudius Huber: Ja, die gibt es durchaus. Portable Class Libraries sind .NET-Bibliotheken und somit ideal, um Code zwischen verschiedensten .NET-Plattformen zu teilen: .NET, Windows Phone, Windows Store, Xamarin.Android, Xamarin.iOS etc. Dabei eignen sich Portable Class Libraries auch besonders, um Code an Dritte weiterzugeben, da es eben Bibliotheken sind. Universal Apps sind mehr geeignet, um gemeinsamen Code in einer Windows Store und Windows Phone App zu nutzen. Der Code soll nicht in verschiedenen Apps, sondern meist lediglich in einer einzigen Universal App eingesetzt werden. Der gemeinsame Code in Universal Apps ist zudem oft sehr UI-lastig und besteht üblicherweise aus Controls und verschiedenen Ressourcen wie etwa Bildern.

Windows Developer: Was sollte man bei der Entwicklung von Universal Apps besonders beachten?

Thomas Claudius Huber: Wir haben als Entwickler mit den Universal Apps zwar ein weitestgehend einheitliches Programmiermodell für die beiden Plattformen Windows Store und Windows Phone, jedoch gibt es weiterhin Unterschiede zwischen den beiden Plattformen, die zu beachten sind. So besitzt beispielsweise ein Windows Phone einen Hardware-Back-Button, ein Windows-Rechner/-Tablet dagegen nicht. Somit muss beim Tablet ein Back-Button in der App angezeigt werden, auf dem Windows Phone wiederum nicht. Es gibt zahlreiche weitere technische Unterschiede, beispielsweise sind manche Controls verschieden bzw. müssen auf der jeweiligen Plattform anders umgesetzt und dargestellt werden. Hier empfiehlt es sich, Vieles in eigenen UserControls zu wrappen, um wieder möglichst viel gemeinsamen Code zu haben. Generell sollten Entwickler darauf achten, eine möglichst große gemeinsame Codebasis zu erstellen, um wirklich von Universal Apps zu profitieren.

„One Windows“

Windows Developer: Die Universal Apps sind ein erster Schritt in Richtung des einheitlichen Betriebssystems für alle Geräte, das Microsoft-CEO Nadella vor einiger Zeit angekündigt hat. Wie ist deine Einschätzung hierzu?

Thomas Claudius Huber: Auf jeden Fall sind die Universal Apps ein Schritt in die richtige Richtung. Das angekündigte einheitliche Betriebssystem wird sicherlich im Kern auf allen Plattformen einheitlich sein und über die verschiedenen Plattformen hinweg zum großen Teil einheitliche APIs haben. Somit könnte beispielsweise das Speichern einer Datei von Windows zu Windows Phone zur Xbox immer einheitlich sein. Dadurch lässt sich in Zukunft noch mehr „universeller“ Code für alle Plattformen schreiben. Aber trotz aller Vorfreude: die Oberfläche für einen PC und ein Smartphone wird aus UX-Gründen sicherlich nicht gleich sein. Somit bleiben hier weiterhin Unterschiede im UI, die es aus Entwicklersicht auch in Zukunft zu meistern gilt.

Windows Developer: Danke für das Gespräch, Thomas.

© Thomas Claudius Huber

Thomas Claudius Huber ist MVP im Bereich Client Development und Principal Consultant bei der Trivadis in Basel. Als Trainer, Berater und Entwickler ist er in den Bereichen .NET, Datenbanken und Architektur unterwegs. Da ihn Benutzeroberflächen schon seit seinem Informatikstudium faszinierten, spezialisierte er sich in den vergangenen Jahren auf die UI-Programmierung mit WPF/Windows Phone/Silverlight. Heute ist er begeisterter Entwickler von Windows-Store-Apps. Thomas ist Autor verschiedenster Bücher, darunter das umfassende Handbuch zur Windows Presentation Foundation und das umfassende Handbuch zum Entwickeln von Windows-Store-Apps.

Aufmacherbild: Center symbol of vector business team one goal von Shutterstock / Urheberrecht: maradonna 8888

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -