Programmierwerkzeuge für Windows Phone 7

Windows Phone 7 stellt Microsofts Neuanfang im Mobile-Bereich dar. Neu ist auch, dass der Konzern die Entwicklungstools dafür kostenlos bereitstellt. heise Developer beleuchtet, welche Werkzeuge das sind und welche Optionen der Anwendungsentwicklung sich mit ihnen ergeben.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 16 Min.
Von
  • Kay Glahn
Inhaltsverzeichnis

Windows Phone 7 stellt Microsofts Neuanfang im Mobile-Bereich dar. Neu ist auch, dass der Konzern die Entwicklungstools dafür kostenlos bereitstellt. heise Developer beleuchtet, welche Werkzeuge das sind und welche Optionen der Anwendungsentwicklung sich mit ihnen ergeben.

Im Gegensatz zum Vorgänger Windows Mobile geht Microsoft mit Windows Phone 7 einen komplett neuen Weg, um mit konkurrierenden Plattformen wie iPhone und Android wieder mithalten zu können. Für den Entwickler besteht wohl der wichtigste Unterschied darin, dass Microsoft nun keine nativen Anwendungen für Drittanbieter zulässt. Die Programmierung erfolgt ausschließlich mit Silverlight oder XNA. Vorteile für Entwickler sind dadurch eine einheitliche Hardware-Plattform, ein zentraler App-Store (Windows Phone Marketplace) und die kostenlosen Entwicklungstools.

Durch die Entwicklung in Silverlight oder XNA ergibt sich, dass sich alle Applikationen als Managed Code bereitstellen und in einer sicheren Sandbox ausführen lassen. Weil Microsoft auf die Techniken zurückgreift, können Entwickler viele ihrer Anwendungen mit geringen Anpassungen auch auf die Windows-Phone-Plattform portieren, vor allem hinsichtlich Displaygröße und gerätespezifischer Sensoren. Die Entwicklung für beide Frameworks erfolgte fürs Erste in C#. Seit Ende letzter Woche gibt es zudem in einer frühen Form Unterstützung für Visual Basic .NET.

Bevor ein Entwickler mit dem Schreiben eines Programms für Windows Phone 7 beginnt, muss er sich für einen der beiden Ansätze entscheiden. Silverlight stellt das ideale Framework für Rich-Internet-Applikationen bereit, die überwiegend seitenorientiert arbeiten, auf die zahlreichen Windows-Phone-Steuerelemente zurückgreifen können und sich damit in das Look&Feel des User Interface von Windows Phone integrieren lassen.

Das neue Framework basiert auf den beiden Säulen Silverlight und XNA (Abb. 1).

Bei der Entwicklung von Silverlight-Anwendungen für Windows Phone spielen zwei Tools eine wesentliche Rolle. Das ist zum einen Visual Studio und zum anderen Expression Blend. Mit beiden lassen sich XAML-User-Interfaces (Extensible Application Markup Language) designen, für die man mit Visual Studio dann die Anwendungslogik implementiert, indem man entweder auf die Silverlight-Bibliotheken oder auf die Common Base Library zurückgreift. Das auf die Weise erstellte XAML-Dokument interpretieren darauf Silverlights Presentation Engine und andere Komponenten der Anwendungsplattform von Windows Phone zur Laufzeit.

Das als Flash-Konkurrent gehandelte Silverlight ist eine Abspaltung von WPF (Windows Presentation Foundation), die für zahlreiche Plattformen und Browser zur Verfügung steht und die Entwicklung komplexer User Interfaces aus traditionellen Steuerelementen, Text, Vektorgrafik, Video- und Audio-Elementen, Animationen sowie Data Binding ermöglicht. Mit Windows Phone 7 steht Silverlight nun erstmals für Mobiltelefone zur Verfügung, als abgespeckte Version von Silverlight 3, die im Gegenzug spezielle Funktionen wie die Unterstützung von Multitouch-UIs und unterschiedliche Sensoren enthält.

Das XNA-Framework wurde ursprünglich zur Entwicklung von Spielen sowohl für Windows-PCs als auch für die Xbox und Microsofts HD-Player Zune entwickelt. Es besteht im Wesentlichen aus speziell auf die Spieleentwicklung ausgerichteten Managed APIs. Hierzu gehören Sprite-basierte 2-D-APIs, die das Rotieren, Skalieren und Filtern unterstützen, aber auch 3-D-Grafik-APIs, die den einfachen Umgang mit 3-D-Objekten, Texturen und Licht und Schatten ermöglichen. Für die Entwicklung von Applikationen für XNA kommt das XNA Game Studio 4.0 zum Einsatz, das sich in Visual Studio 2010 integrieren lässt und zusätzliche Tools bereitstellt. Konsequenterweise stellen die Redmonder das Framework nun für Windows Phone zur Verfügung.

Je nach Anwendung eignet sich Silverlight oder XNA besser für die Umsetzung. Silverlight ist das Framework der Wahl, wenn man XAML-Anwendungen entwickeln möchte, die eher einer RIA (Rich Internet Application) entsprechen und vor allem die Windows-Phone-Controls zur UI-Darstellung verwenden. Es handelt sich um einen Mark-up-Ansatz, der das UI mit XAML in Form von XML-Dateien beschreibt. Der eigentliche Programmcode kann zwar einige Initialisierungsaufgaben vornehmen, dient aber im Wesentlichen dazu, die Events von den durch Silverlight bereitgestellten UI-Controls zu verarbeiten. Außerdem ist der Ansatz sinnvoll, wenn man innerhalb der Anwendung digitale Medien wie Video oder Audio abspielen möchte oder wenn man mit dem Web-Browser-Steuerelement HTML-Inhalte in die Applikation mit integriert.

Der Einsatz von XNA ist sinnvoll, wenn man 2-D- und 3-D-Spiele entwickeln möchte. Das Framework stellt dafür unterschiedliche Elemente bereit, die sich über die sogenannte XNA Content Pipeline bereitstellen und über die integrierte XNA Game Loop steuern lassen. XNA ist aber nicht allein auf die Spieleentwicklung beschränkt, denn auch andere Anwendungen, die aus vielen grafischen Inhalten bestehen, lassen sich durchaus mit dem Framework umsetzen. Entwickler sollten jedoch daran denken, dass es es nicht die UI-Controls von Windows Phone enthält und sie somit Komponenten wie Listen, Textboxen und Buttons komplett selber implementieren müssen. Bei Silverlight sind hingegen lediglich ein paar Mausklicks erforderlich, um die Elemente auf der Seite zu platzieren. Auf der anderen Seite spricht nichts dagegen, Spiele in Silverlight zu entwickeln, falls keine aufwendigen 3-D-Animationen erforderlich sind.

Silverlight und XNA teilen sich einige Bibliotheken. Auch lassen sich manche XNA-Bibliotheken in Silverlight verwenden und umgekehrt. Zurzeit ist es allerdings nicht möglich, visuelle Elemente von Silverlight und XNA in einer einzigen Applikation zu mischen. Allerdings kann sich der Entwickler relativ schnell in die Plattformen einarbeiten, denn die Basis ist ähnlich. Außerdem erfolgt bei ihnen die Entwicklung in C#, und als Entwicklungsumgebung kommt üblicherweise Visual Studio zum Einsatz.

Obwohl Microsoft mit Windows Phone 7 einen Neuanfang startet, dürften Entwicklern, die in der Vergangenheit schon für Microsoft-Plattformen entwickelt haben, die verwendeten Techniken vertraut sein. Mit Silverlight, XNA und C# zieht Microsoft Konzepte heran, die sich bewährt haben. Zudem ist es mit C# möglich, Bibliotheken zwischen Silverlight, XNA und anderen .NET-Plattformen auszutauschen.

Der Einstieg in die neue Plattform soll für Entwickler besonders einfach sein. Deshalb sind die erforderlichen Werkzeuge kostenlos verfügbar und werden in einem einzigen Paket zum Download angeboten. In ihm finden sich neben den Entwicklungswerkzeugen die Dokumentation zur neuen Plattform und Beispielprogramme. Entwickler erhalten dadurch alles, was zum Schreiben und Verteilen von Windows-Phone-Anwendungen erforderlich ist, aus einer Hand geliefert. Hat man Visual Studio 2010 auf seinem PC installiert, wird ein Add-in installiert. Verfügt man noch nicht über die Entwicklungsumgebung, bekommt man sie in Form von Visual Studio 2010 Express for Windows Phone kostenlos mitgeliefert. Das aktuelle Visual Studio ist der Dreh- und Angelpunkt der Applikationsentwicklung für Windows Phone 7. Neben der Projektverwaltung stellt die Windows-Phone-Variante der IDE Packager, Manifest-Generator sowie Designer und Debugger bereit.

Visual Studio 2010 mit dem Emulator stellt die Basis für die Entwicklung von Windows-Phone-Anwendungen dar (Abb. 2).

Das Visual Studio für Windows Phone beziehungsweise das Add-in für eine schon installierte IDE stellen neue Projekt-Templates bereit, die speziell auf die Entwicklung von Windows-Phone Anwendungen zugeschnitten sind. Im Ordner "Visual C# | Silverlight for Windows Phone" findet man unter "Installed Templates" die drei Vorlagen "Windows Phone Application", "Windows Phone List Application" und "Windows Phone Class Library". Die beiden ersten Templates kann man als Grundlage für eigene Silverlight-Applikationen nutzen. Man startet entweder mit einer einfachen einseitigen Anwendungen bestehend aus Page und Frame oder mit einer ListBox und der dazugehörigen Navigation, die sich vor allem zum Darstellen von Daten aller Art eignet.

Die dritte Vorlage dient als Ausgangspunkt für eine DLL, die keine UI-Elemente enthält und mit anderen Applikationen geteilt werden soll. Zusätzlich gibt es noch eine Vorlage für ein auf dem Panorama-Steuerelement basierende Anwendung und eine "Data Bound List Application", die eine an ein Datenmodell gebundene Applikation mit einer Liste bereitstellt.

Außerdem sind eine Maps Control zum Zugriff auf Bing Maps und ein Pivot-Steuerelement verfügbar. Panorama ermöglicht es, das Konzept der sogenannten Hubs von Windows Phone 7, die Informationen nicht nach Applikationen, sondern nach Inhalten unterteilt anzuzeigen, in eigenen Applikationen einzusetzen.

Visual Studio 2010 wird um Vorlagen für die Entwicklung von Silverlight-Anwendungen für Windows Phone ergänzt (Abb. 3).

Durch die Integration des XNA Game Studio lassen sich weitere Templates bereitstellen. In der Sektion "XNA Game Studio 4.0" unter "Visual C#" findet man nun neben den XNA-Vorlagen für Windows und Xbox 360 die Templates "Windows Phone Game" und "Windows Phone Game Library", die sich als Basis für eine XNA-Applikation oder eine DLL verwenden lassen. Mit der Vorlage "Content Pipeline Extension Library" kann man zudem Erweiterungen für die Content Pipeline in Windows Phone entwickeln. Weitere Templates für die Windows-Phone-Entwicklung stehen zudem online zur Verfügung. Es lassen sich beispielsweise weitere Projektvorlagen für die Entwicklung von Anwendungen in F# abrufen.

Visual Studio 2010 stellt auch Vorlagen für die Entwicklung von XNA-Anwendungen für Windows Phone bereit (Abb. 4).

Ein weiteres Tool, das im Installationspaket enthalten ist, ist Expression Blend 4. Es richtet sich mehr an Designer als an Programmierer und ermöglicht Ersteren, auf ähnliche Weise User Interfaces für Windows Phone zu designen wie bisher bei RIA-Applikationen für den Desktop-Browser mit Silverlight. Designer könne mit dem Tool via Drag&Drop XAML-User-Interfaces erstellen, die sich direkt in Visual Studio übernehmen und von Entwicklern mit Programmlogik ausstatten lassen. Die für Windows Phone erstellten Silverlight-Projekte können Programmierer sowohl in Visual Studio als auch in Expression Blend for Windows Phone öffnen und bearbeiten, was eine nahtlose Zusammenarbeit zwischen Softwareentwickler und Designer verspricht.

Expression Blend 4 for Windows Phone ermöglicht das komfortable Erstellen von anspruchsvollen UIs für Silverlight-Anwendungen (Abb. 5).

Ein weiterer wichtiger Bestandteil des Pakets ist der Windows Phone Emulator, der das Testen und Debuggen von Silverlight- und XNA-Anwendungen für Windows Phone ermöglicht. Der Emulator unterstützt eine GPU-Emulation, verschiedene Ausrichtungen und Phone Skinning. Zum Debuggen aus Visual Studio heraus kommt entweder der Emulator oder ein echtes Gerät zum Einsatz. Das Erstellen und Ausliefern der Anwendungspakete übernimmt die IDE. Bei der Fehlersuche werden gängige Funktionen wie Call Stack Walking, die Auswertung von Ausdrücken, das schrittweise Ausführen des Codes und die Überwachung von Variablen unterstützt.

Die Entwicklung von Windows-Phone-Anwendungen geht nur mit Vista oder Windows 7. Schuld daran ist vor allem der Emulator, der die Zusammenarbeit mit XP, Windows Server, Virtual PC und Hyper-V verweigert. Das führt unter anderem dazu, dass Entwickler, die Entwicklungsumgebungen für die Zielplattformen normalerweise auf einem virtuellen System laufen lassen oder die Beta-Version nicht gleich auf ihrem Live-System installieren wollen, nun gezwungen sind, auf einem realen System zu arbeiten.

Das erwähnte XNA Game Studio ist ebenfalls Bestandteil des Installationspakets. Es stellt neben den Managed-Code-Klassenbibliotheken externe Tools bereit. Hierzu gehören Werkzeuge, die das Integrieren von grafischen Inhalten sowie Audio-Dateien in ein Spiel vereinfachen.

Nachdem Microsoft im März auf der MIX 2010 die Tools für Windows Phone zunächst als Preview (CTP) bereitgestellt hatte und später eine Beta-Version folgen ließ, sind sie seit Mitte September final freigegeben. Da die Anwendungsentwicklung einen zentralen Bestandteil von Microsofts neuer Mobile-Strategie ausmacht, hat Microsoft damit, nachdem das Betriebssystems am 1. September fertiggestellt wurde, noch vor dem Start des aktualisierten App-Stores die finale Version der Developer-Tools bereitgestellt.

Microsoft empfiehlt Entwicklern, die Zeit bis zum Launch des Windows Phone Marketplace sowie der ersten Geräte im Oktober für Anpassungen zu nutzen. Laut Microsoft sind die Tools mittlerweile über 350.000-mal heruntergeladen worden, was durchaus auf einen Start des Marketplace mit zahlreichen Applikationen hoffen lässt.

Neben den Entwicklungswerkzeugen spielen zwei weitere Komponenten eine entscheidende Rolle in Microsofts neuer Mobile-Strategie. Das sind zum einen der Windows Phone Marketplace und zum anderen die Cloud-Services. Der Marktplatz bietet zusammen mit dem Developer-Portal einen zentralen Anlaufpunkt für Entwickler, um ihre Applikationen einzureichen und zertifizieren zu lassen. Für den Nutzer stellt er hingegen eine zentrale Stelle dar, über die er Applikationen herunterladen, kaufen und aktualisieren kann. Der entscheidende Unterschied zu Windows Mobile 6.5, das den App-Store auch standardmäßig auf dem Gerät vorinstalliert, ist, das nun der Marketplace der einzige Weg ist, Anwendungen auf dem Gerät einzurichten. Microsoft lässt keine alternativen Vertriebswege mehr zu und lehnt sich damit an das Konzept von Apples App Store an.

Microsoft deckt mit der Windows-Phone-Plattform alle wichtigen Bausteine eines mobilen Ökosystems ab (Abb. 6).

Um die fertige Anwendung auf dem Marktplatz zu veröffentlichen, muss der Entwickler zunächst eine .xap-Datei erstellen. Sie ist eine komprimierte Datei mit allen die Anwendung betreffenden Daten. Dieses Paket reicht der Entwickler über das Developer-Portal des Marktplatzes zur Zertifizierung ein. Microsoft prüft und testet darauf die Anwendung auf korrektes Verhalten und ob sie für die gewählten Sprachen funktioniert beziehungsweise ob sie das Verhalten des Geräts nicht negativ beeinflusst. Hat die Firma die Applikation abgesegnet, bekommt der Entwickler das per E-Mail mitgeteilt und kann dann über das Portal die Applikation zum Verkauf freischalten.

Das Developer-Portal und der Marketplace bilden die Kernkomponenten im Entwicklungs- und Deployment-Prozess (Abb. 7).

Der Programmierer kann den Preis und die gewünschten Zielmärkte festlegen. Endnutzer können kostenpflichtige Applikation entweder per Kreditkarte oder über die Mobilfunkrechnung bezahlen. Der Entwickler hat, nachdem er die Anwendung für den Marketplace freigegeben hat, zahlreiche Mittel, die Applikation über das Developer-Portal zu verwalten. Er kann zum Beispiel unterschiedliche Versionen und Add-ons bereitstellen. Außerdem hat er Zugang zum Feedback der Benutzer und kann die Umsätze sowie Nutzungs-, Debugging- und Performanzdaten einsehen, die die Applikation über den Marktplatz zurückliefert. Sobald man als Entwickler Fehler in der Anwendung behebt, die Funktionen erweitert oder eine komplett neue Version liefert, muss die Anwendung den Zertifizierungsprozess erneut durchlaufen. Wie die Vorbilder Apple und Google behält Microsoft 30 Prozent der Einnahmen ein. 70 Prozent gehen an den Entwickler.

In Microsofts Mobile-Strategie stellen Cloud-Services eine wesentlichen Komponente dar (Abb. 8).

Eine weitere wichtige Komponente der neuen Plattform ist die Cloud. Microsoft hat die vier wichtigsten Komponenten seiner Strategie mit drei Geräten und der Cloud bezeichnet. Hiermit sind neben dem Handy auch Windows-PCs und die Xbox gemeint. Im Mittelpunkt steht Microsofts eigene Cloud-Plattform Windows Azure, auf der Entwickler ihre Dienste hosten können, die sich dann von Clients via REST (Representational State Transfer) oder SOAP (Simple Object Access Protocol) erreichen lassen. Aber auch die in Windows Phone 7 verfügbaren Push-Benachrichtigungen können über einen Cloud-Service bereitgestellt werden, indem er die Applikationen nach der Registrierung über bestimmte Ereignisse informiert. Das erfolgt, ohne dass sie selber ständig per Polling prüfen müssen, ob neue Ereignisse vorliegen. Auch auf die "Xbox LIVE Services" sollen die Windows-Phone-Applikationen zugreifen können. Der Location-Cloud-Service ermöglicht es Anwendungen, transparent auf Positionsdaten zuzugreifen, die aus Informationen basierend auf W-LAN, Mobilfunknetz und GPS zusammengestellt werden. Es lassen sich zudem beliebige andere per Webservice verfügbare Cloud-Dienste im Netz nutzen.

Mehr Infos

Systemvoraussetzungen:

Unterstützte Betriebssysteme:

  • Windows Vista (x86 and x64) ENU mit Service Pack 2 (außer Starter Edition)
  • Windows 7 (x86 and x64) ENU (außer Starter Edition)

Festplatte:

  • 3 GByte freier Speicherplatz auf dem Systemlaufwerk

Arbeitsspeicher:

  • Mindestens 2 GByte RAM

Grafikkarte:

  • DirectX-10-fähige Grafikkarte mit WDDM-1.1-Treiber

Microsoft hat den Reset-Knopf gedrückt und geht mit einer von Grund auf neu konzipierten Plattform ins Rennen um die Vorherrschaft im Smartphone-Markt. Die Plattform hinterlässt einen vielversprechenden Eindruck, und die kostenlosen Tools bieten dem Entwickler und Designer einen einfachen Weg, Anwendungen für die neue Plattform zu entwickeln. Vor allem der Einsatz der bewährten Techniken Silverlight und XNA macht den Nachteil, dass man sich bei der Entwicklung komplett von der alten Windows-Mobile-Welt trennen muss, fast schon wieder wett. Aus Entwicklersicht ist alles Erforderliche vorhanden, um neue Applikationen für die erste Generation an Geräten zu erstellen. Es bleibt nun nur noch abzuwarten, dass diese erscheinen und wirklich das zeigen, was Microsoft verspricht.

Kay Glahn
ist unabhängiger IT-Berater mit den Schwerpunkten mobile Applications und Services. Er berät internationale Kunden bei der Umsetzung von Projekten im Mobile-Bereich.

(ane)