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.