Windows 8 – Überblick für Entwickler

Jan KufferWindows 8/10

Neu in Windows 8

Obwohl Microsoft mit dem Multi-Touch Tisch Surface durchaus Akzente setzt, war die Bedienung von Windows per Touch bisher möglich, jedoch nicht optimal. Dies war auch ein Grund, warum die Ultra-Mobile PCs (UMPCs) nur mäßigen Erfolg hatten; die Touch Funktionalitäten waren nachträglich aufgesetzt und kein integraler Bestandteil des Konzepts.

Apple und Google haben gezeigt, dass durchaus ein gewaltiger Markt für Tablet Plattformen und darauf spezialisierte Apps vorhanden ist – wenn die Oberflächen 100% auf Touch ausgelegt sind und eben nicht nur ein zusätzliches Feature sind.
Dies hat Microsoft erkannt und zeigt mit Windows 8 einen neuen Ansatz, der beide Welten (Tablet und PC) auf spannende Art und Weise in dem neuen Metro UI vereint.

clip_image002

In diesem Blogbeitrag stelle ich das Thema Windows 8 für Entwickler mit dem Schwerpunkt auf der neuen Oberflächenentwicklung vor, weitere Artikel in diesem Kontext werden folgen.

Metro UI

Die offensichtlichste Neuerung von Windows 8 ist die für Touch optimierte Oberfläche, das Metro UI. Metro ist Microsofts Oberflächenkonzept der neuen Generation, das bereits auf dem Windows Phone 7 sowie der Xbox 360 implementiert wurde.

clip_image004

„It’s about content and typography“ ist die zentrale Aussage: Metro Oberflächen zeichnen sich durch schnörkellose und geradlinige, obgleich dynamische Bildsprache aus, wie beispielsweise die Kacheln auf dem Startbildschirm des Windows Phone. Die zentrale Schriftart ist Segeo UI und wird in unterschiedlichen Ausprägungen verwendet.

Für Entwickler sind neben der neuen Metro Oberfläche die Metro Apps besonders interessant. Diese sind Hauptbestandteil der Metro UI und sind an das Konzept der Smartphone Apps angelehnt:

– Kompakt

– Optisch ansprechend

– Unkomplizierte Installation exklusiv über einen zentralen App Store / Marketplace

Microsoft sieht die Metro Apps als die zentrale Komponente der künftigen Benutzernutzung und geht sogar so weit, den klassischen Desktop ebenfalls als App einzubinden (!).
Steve Sinofsky (Microsofts President of the Windows and Windows Live Division) plauderte bei der Vorstellung von Windows 8 auf der BUILD Konferenz, dass kein Windows Desktop Code geladen wird, bevor Dieser explizit über die App geladen wird (Link zum Video: http://channel9.msdn.com/Events/BUILD/BUILD2011/KEY-0001 )

Klassische Enterprise Applikationen werden weiterhin auf dem Desktop ausgeführt, hier ändert sich also auf den ersten Blick erst mal nichts. Übrigens: wer die Metro UI nicht verwenden will, findet im Netz entsprechende Anleitungen und Tools, das klassische Verhalten von Windows wiederherzustellen.

Metro App Entwicklung für Windows 8

Die Entwicklung von Metro Apps unter Windows 8 findet wie gewohnt in Visual Studio statt (Version 2011). Der Einstieg ist jedoch nicht ohne, da es drei verschiedene Wege gibt, die Apps zu realisieren.

clip_image006

Die erste Möglichkeit ist die aus WPF und Windows Phone 7/Silverlight bekannte Kombination aus C# und XAML (Statt C# kann auch VB genutzt werden). Hier wird also wie gewohnt mit XAML die Oberfläche beschrieben und in C# die Logik der App programmiert.

Eine weitere Art Metro Apps zu entwickeln ist HTML5 und JavaScript, hierbei wird mit HTML5 und CSS3 die Oberfläche designt und mit JavaScript zum Leben erweckt. Für jeden Webentwickler bestimmt eine spannende Möglichkeit.

Zu guter Letzt gibt es auch die Möglichkeit die Apps mit C++ zu schreiben. Hier wird ebenfalls XAML für die Oberflächen verwendet.

Als einheitliche Ebene verbindet die Ansätze die neue Windows Runtime.

Windows Runtime

Die Windows Runtime ist die Laufzeitumgebung für Metro Apps. In diesem Kontext ersetzt die Windows Runtime das .NET Framework (nicht jedoch zwangsweise die Programmiersprachen C# und VB.NET).
Die Windows Runtime ist komplett in nativem Code implementiert und bietet eine Art leichtgewichtiges und hochperformantes .NET auf Basis von Component Object Model (COM) an. Die Windows Runtime bietet nur einen reduzierten Umfang gegenüber .NET, was sich auch an der enthaltenen Menge der Klassen wiederspiegelt, anstelle von 12.000 Klassen (.NET 4.0) bringt die Windows Runtime nur 1.800 Klassen mit. Der Zugriff aus C#/VB.NET und JavaScript auf die Windows Runtime wird durch einen leichtgewichtigen Mapping-Layer abgebildet.

Für Desktop Anwendungen wird weiterhin das normale .NET Framework verwendet.

Bei der Entwicklung mit C# und XAML sollte sich jeder Windows Phone 7 Entwickler fast wie zuhause fühlen. Zwar sind die Umgebungen nicht identisch, doch ist der Aufbau ähnlich genug, um keine große Einarbeitungszeit zu erfordern. Ein Unterschied sind die Layouts der Metro-App. Hier wird statt Panorama oder Pivot Layouts, wie bei Windows Phone 7 üblich, auf Grids und Listen Layouts gesetzt. Die Inhalte dieser Layouts sind allerdings durchaus vergleichbar. Auch bei Metro Apps gibt es Bindings und Converter usw. Die restlichen Unterschiede liegen vor allem in der Laufzeitumgebung.

Die Windows Runtime stellt teilweise andere Klassen zur Verfügung als Silverlight für Windows Phone 7. Außerdem fällt auf, dass die Namensräume neu strukturiert wurden, aus System und Microsoft wurde Windows also Windows.IO anstelle von System.IO. Eine Übersicht aller Klassen und Namensräume der Windows Runtime stellt Microsoft in der Windows Runtime Reference bereit.

Windows Phone 7 Apps unter Windows 8

Da die Windows 8 Metro App Entwicklung Ähnlichkeiten mit der Entwicklung für das Windows Phone 7 hat, könnte man annehmen, dass Windows Phone 7 Apps auch unter Windows 8 laufen. Das ist nicht der Fall. Zwar stellen Silverlight für Windows Phone 7 und die Windows Runtime Teilmengen von .NET dar, doch sind es verschiedene Teilmengen. Das bedeutet, dass in der Windows Runtime nicht alle Klassen von Silverlight für Windows Phone 7 enthalten sind und umgekehrt nicht alle WP7 Klassen in der Windows Runtime enthalten sind.

Um eine Windows Phone 7 App auf Windows 8 ablaufen zulassen, ist nach dem aktuellen Stand des Betriebssystems (25.01.2012) eine Portierung der App notwendig. Die Portierung profitiert von den Ähnlichkeiten der beiden Betriebssysteme, dennoch ist diese mit Aufwand verbunden.

Status

Dieser Blogbeitrag basiert auf der Developer Preview von Windows 8, also noch vor der Beta und die Entwicklung des Windows 8 Betriebssystems ist noch nicht final. Welche Funktionalitäten in welcher Form in der finalen Ausgabe vertreten sein werden steht noch nicht zu 100% fest, an der grundsätzlichen Ausrichtung mit Touch Fokus wird sich vermutlich wenig ändern.

Bereits dieser frühe Stand macht einen soliden Eindruck und bietet nun auch endlich Windows Entwicklern die Möglichkeit den boomenden Tablet Markt mitzugestalten.

Natürlich vergisst Microsoft trotzdem sein Kerngeschäft nicht; denn die meisten Geräte im Internet werden auch Ende 2012 noch klassisch mit Mouse und Tastatur gesteuert werden. Eine gute Vorstellung, wie Windows 8 auf klassischen Notebooks wirkt, zeigt dieses Video der aktualisierten Pre-Beta, vorgeführt am Microsoft Stand auf der diesjährigen CES: http://www.neowin.net/news/windows-8-pre-beta-demoed-shows-new-features-video