Entwickeln für Windows Phone 7.5: Architektur, Frameworks, APIs

Patrick Getzmann

Simon Hackfort

Peter Nowak

Published by Microsoft Press Deutschland

A Note Regarding Supplemental Files

Supplemental files and examples for this book can be found at http://examples.oreilly.com/9783866454651/. Please use a standard desktop web browser to access these files, as they may not be accessible from all ereader devices.

All code files or examples referenced in the book will be available online. For physical books that ship with an accompanying disc, whenever possible, we’ve posted all CD/DVD content. Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.

Vorwort(e)

In diesem Vorwort:

„Vorwort von Achim Berg und Brandon Watson“

„Vorwort der Autoren“

Vorwort von Achim Berg und Brandon Watson

It’s just great to see members of the Microsoft MVP community writing books for Windows Phone developers. Having experts who have spent time with the Windows Phone engineering team walking developers through building apps is one of the best ways for any developer to learn how to build great Windows Phone apps.

Achim Berg, Corporate Vice President Windows Phone Marketing

Microsoft Corporation

It’s a great honor to be asked by one of our Windows Phone MVPs to write a foreword for their book. When Peter, Patrick and Simon first approached me about this, I couldn’t say yes fast enough. It was the least that I could do for a team who has spent so much time and energy helping Microsoft build up the ecosystem around Windows Phone development. Patrick and Peter are both Windows Phone Development MVPs, and this collaboration with Simon exemplifies the support of the Windows Phone developer community by so many passionate and talented individuals.

The mobile space continues to grow each year, with more and more people going online for the first time, many of them doing so on a smartphone and not a PC. The expectations of the mobile customer are somewhat different than that of a user of a PC. Their expectations around the experiences which they consume on the phone are increasing, and this is being fueled by the increasing performance of the networks supporting the phones, the handsets the customers are using, and the operating systems running on those handsets.

As those expectations rise, the onus is ever more on the developers of mobile applications and services to be just a little bit better. Nothing is difficult. Everything is a challenge. Developers love challenges. What Peter, Patrick and Simon have laid out for you is a way to conquer those challenges, all the while building amazing apps for Windows Phone. This book is written by developers for developers, so you know that whatever problem you are having, they have probably seen it. This is your guide through the sometimes turbulent waters of your journey to bring your app from your imagination to your customers.

Windows Phone is all about amazing integrated experiences, where people are put first, and not icons. Apps work as customers expect them, but bring a level of polish and magic to the phone that cannot be found on other platforms. It’s one of the reasons why so many apps ship on Windows Phone with features which cannot be found on the other major mobile development platforms. From the Live Tiles which come alive on the Start Screen, to the pervasive Metro design language, to the amazing development tools, you will find so much to love about building apps for Windows Phone.

The Windows Phone 7.5 tagline is »Put people first.«™ For our team, we put developers first. Developers like Peter, Patrick and Simon. Developers like you. If you have a successful app on the other platforms, let this book help you bring that app to Windows Phone. If you have a new app idea, see if the canvas of Windows Phone can’t help you dream a little bigger. Every developer matters. Every. Single. One.

Brandon Watson, Senior Director Windows Phone Apps und Developer Experience

Microsoft Corporation http://www.manyniches.com/

Vorwort der Autoren

Ziel und Motivation dieses Buchs

Dieses Buch hat mehrere Ziele. So verfolgt es als primäres Ziel, den Silverlight- und XNA-Entwicklern die Plattform von Windows Phone näher zu bringen und die neuen Funktionen des Windows Phone SDK 7.1 für bereits bestehende Entwickler kurz und prägnant zu erklären. Es stehen zwar immer noch jede Menge Marketingaussagen im Raum, wie etwa, dass jeder Silverlight- und XNA-Entwickler bereits ein Windows Phone-Entwickler sei, doch stimmt dies nicht ganz. Das vergangene Jahr seit der Veröffentlichung von Windows Phone hat insbesondere durch die Marketplace Richtlinien gezeigt, dass Entwickeln für Windows Phone doch nicht immer ganz so einfach und Hintergrundwissen über mobile Anwendungen sehr von Vorteil ist. Das ist mit Windows Phone 7.5 nicht anders geworden. Immerhin: Selbst als Mobile-Laie wird man mit den Tools schnell zu einem Ergebnis kommen, wenn bereits Erfahrungen mit Silverlight und XNA vorhanden sind.

Eher selten muss sich ein Silverlight-Entwickler mit dem Thema »Orientierung« auseinandersetzen und dafür möglicherweise zwei Designs für seine Anwendung erstellen, die im Hoch- und Querformat dargestellt werden. Ein XNA-Entwickler kümmert sich auch eher nicht um das Thema »Stromverbrauch«, da schließlich Xbox 360 und PC über eine permanente Stromversorgung verfügen. Und schon früh kommen Fragen auf wie »Was ist eine SIP? Wieso benötige ich dort verschiedene Layouts? Wieso fehlen mir in der bekannten Klasse x die Methoden y und z, die ich doch vorher verwendet habe? Und warum sollte ich Silverlight und XNA in einer Applikation vermischen?«

Dieses Buch wird Ihnen daher nicht nur die Unterschiede zu Silverlight und XNA Framework aufzeigen, sondern auch die Eigenheiten der Windows Phone-Plattform näherbringen. Dazu gehören unter anderem auch die Push-Notifications, die es in dieser Form vorher im Microsoft-Umfeld noch nicht gab.

Zudem werden nicht nur die Anwendungsmöglichkeiten der diversen Technologien dargelegt. Vielmehr zählen hier die Philosophie wie auch die Idee dahinter, warum man sich seitens Microsoft geradewegs so entschieden hat, wie man entschieden hat. Dazu gehört dann auch die Metro-Designsprache, die mittlerweile auch auf der Xbox und unter Windows 8 eine Anwendung gefunden hat.

Zu guter Letzt lässt sich sagen, dass dieses Buch kein Einsteigerbuch für Silverlight- oder XNA-Entwickler ist, sondern dass es durchaus eine gute Portion an Grundkenntnissen voraussetzt. Zum Erlernen von Silver-light und XNA selbst gibt es weitaus bessere und dickere Bücher, die das nötige Grundwissen gründlicher und umfassender vermitteln können.

Es gibt jedoch auch eine sekundäres Ziel bzw. Zielgruppe für dieses Buch: die Windows Mobile-Entwickler. Diese werden sich nämlich besonders schwer tun, vor allem deswegen, weil Windows Phone als solches fundamental anders funktioniert als Windows Mobile. Nichts vom alten Wissen, außer Kenntnisse zu C#, Visual Basic .NET und Visual Studio hat hier noch Bestand. Es fängt schon damit an, dass kein direkter Zugriff auf die Hardware unterstützt wird. Native Entwicklung fehlt völlig – entwickelt werden kann nur noch mit C# oder Visual Basic .NET. Den gewohnten Zugriff auf den Gerätespeicher gibt es nicht mehr, da das Konzept des Isolated Storage angewendet wird – vor allem zugunsten der Sicherheit der Geräte. Vielmehr geraten Windows Mobile Entwickler langsam unter Zugzwang. Zwar wird Windows Mobile immer noch unterstützt und angeboten, jedoch sinkt die Basis der Firmen, die diese Geräte in ihrem Umfeld weiterhin einsetzten, so dass eine »Portierung« langsam notwendig wird.

Diese und viele weitere Informationen werden in diesem Buch zur Verfügung gestellt, damit Sie sich im Ökosystem von Windows Phone zurechtfinden können.

Möglicherweise wird Ihnen auffallen, dass in diesem Buch offenbar einige Screenshots fehlen. Insbesondere fehlen sie dann, wenn es sich um Funktionen oder Dialogfelder handelt, die nur auf einem Windows Phone funktionieren und in einem Emulator nicht dargestellt werden (können). Leider bietet das Windows Phone auch in der Version 7.5 immer noch keine Möglichkeit, Screenshots anzufertigen. Der Umweg über eine Digitalkamera wäre notwendig geworden, was Ihnen als Ergebnis jedoch nicht angetan werden soll.

Über die Autoren

Patrick Getzmann ist seit Januar 2010 Microsoft MVP für Device Application Development und seit Oktober 2010 Microsoft MVP für Windows Phone Development. Seit Anfang 2000 ist er bei einem global operierenden ICT-Dienstleistungsunternehmen tätig. Dort befasst er sich mit der Entwicklung, Konzeption und Architektur von mobilen Applikationen auf nahezu allen Microsoft-Plattformen. Sein Interessenschwerpunkt liegt auf der Windows Phone-Entwicklung. Er teilt sein Wissen gerne als Sprecher auf Konferenzen und in sonstigen Veröffentlichungen. Sie erreichen ihn per E-Mail unter patrick.getzmann@t-online.de. Sein Blog finden Sie unter http://patrickgetzmann.wordpress.com.

Simon Hackfort ist Sun Certified Java Programmer und seit 2002 bei einem global operierenden ICTDienstleistungsunternehmen tätig. Dort befasst er sich mit der Konzeption und Entwicklung im Bereich Microsoft .NET. Sein Schwerpunkt liegt auf dem Entwerfen von performanten und bedienerfreundlichen Clientoberflächen unter den mobilen Plattformen von Microsoft. Darüber hinaus schreibt er als freier Journalist für den Blog seines Lieblingsfußballvereins, MSV Duisburg, und Artikel für diverse Fachmagazine, wie zum Beispiel für die Zeitung »Visual Studio One« (ppedv AG) oder das »dotnet Magazin« (Software & Support Verlag). Er ist auch auf Konferenzen mit Fachthemen im Bereich Mobility anzutreffen. Sie erreichen Ihn unter simon.hackfort@live.de oder besuchen Sie seinen Blog unter der Internetadresse www.simonhackfort.net.

Peter Nowak ist seit April 2008 Microsoft MVP für Device Application Development und seit Oktober 2010 Microsoft MVP für Windows Phone Development. Seit 2002 ist er bei einem global operierenden ICT-Dienstleistungsunternehmen tätig. Dort befasste er sich primär mit der Entwicklung, nun jedoch mit Konzeption und Architektur im Bereich .NET. Er ist Co-Autor des Buchs »Programmieren mit dem .NET Compact Framework«, erschienen bei der Microsoft Press. Er schreibt Artikel für diverse Fachmagazine, wie die Zeitung »Visual Studio One« (ppedv AG) oder das »dotnet Magazin« (Software & Support Verlag). Auch auf Konferenzen wie der BASTA! oder der VS One ist er häufig mit Fachthemen im Bereich Mobility anzutreffen. Aktuell befasst er sich mit der Entwicklung rund um Windows Phone und seinem neuesten Projekt – seiner Tochter »Marie« Sie erreichen ihn per E-Mail unter peter.nowak@hotmail.de oder unter @PeNoWiMo via Twitter. Sein Blog ist zu finden unter http://winphonedev.de/.

Danksagungen

Die drei Autoren stehen eigentlich nur stellvertretend auf dem Cover dieses Buchs. Streng genommen müsste man sagen, dass es sich hier um ein Community-Buch handelt, zu dem viele Community-Mitglieder Informationen beisteuern konnten.

Vor allem danken wir folgenden Personen, ohne die das Buch so nicht möglich gewesen wäre:

Sandra Michel, ehemals Microsoft Press, die dieses Projekt durch einen Jobwechsel leider nicht bis zu Ende begleiten konnte

Thomas Braun-Wiesholler, Microsoft Press Division beim O’Reilly Verlag, der uns als Lektor zur Seite stand und uns unsere Ideen verwirklichen lies

Stephanie Reimann, Sr. Product Manager – Developer Ecosystem bei Microsoft in Redmond, die uns immer nach allen Möglichkeiten, und oftmals auch darüber hinaus, unterstützt hat

Brandon Watson, Senior Director für Windows Phone Apps und Developer Experience bei Microsoft in Redmond, welcher ein Vorwort zu diesem Buch beisteuerte, wie auch sonst immer für alle Belange ein offenes Ohr hatte

Cliff Simpkins, Senior Product Manager für Windows Phone Apps und Developer Experience bei Microsoft in Redmond, der uns alle möglichen und oft auch unmöglichen Fragen beantwortete. Für uns Buchautoren hatte er immer ein offenes Ohr.

Achim Berg, Corporate Vice President Windows Phone Marketing, der ein paar Worte zu diesem Buch beigesteuert hat

Oliver Scheer von der Developer Platform & Strategy Group der Microsoft Deutschland GmbH, der in der ersten Auflage spontan als Fachlektor einsprang und auch dieses Mal wieder zur Verfügung stand

Uta Berghoff und Silja Brands für das Setzen des Manuskripts

Katrin Letzel, MVP Lead bei der Microsoft Deutschland GmbH. Sie hatte immer ein offenes Ohr und half, wo es nur möglich war – auch wenn sie deswegen manch andere Sache hintenan stellte

Ginny Caughey, US-amerikanische MVP, die über ihre Twitter-Präsenz viele nützliche Hinweise auf das aktuelle Geschehen geben und auch in der Entwicklung mit ein paar Tests aushelfen konnte. Viele ihrer Vorschläge finden Sie in Anhang A.

Rene Schulte, ebenfalls Silverlight MVP, der mit seinen tiefreichenden Silverlight-Kenntnissen gerade beim Einstieg in Silverlight aushelfen konnte

Laurent Bugnion, der zu dem von ihm entwickelten MVVM Light Toolkit und zum CodePlex-Projekt Silverlight 4, WPF 4 and Windows Phone 7 Multi-Touch Manipulation Rede und Antwort stand

Tim Schmitz, der nicht nur das Bing Maps-Steuerelement beisteuerte, sondern auch den Autoren einige Lasten vom Hals halten konnte, sodass sie sich auf dieses Buch konzentrieren konnten

Gordon Breuer ist Mediengestalter für Digital- und Printmedien und .NET-Entwickler für Webanwendungen und Windows Phone und kreierte für uns das 3D-Modell eines Windows Phone für den Roll-Nick-Gier-Winkel

Dirk Nordhusen, DiNoGames, für das Fachlektorat des XNA-Kapitels

Harald M. Genauck, Fachredakteur, der das Manuskript korrigiert und sprachlich abgerundet hat. Die Autoren waren sehr froh, ihn ebenfalls an Bord haben zu dürfen.

Nicht zuletzt danken wir all unseren Liebsten, ohne deren Geduld, Verzicht, Akzeptanz und Verständnis dieses Buch nie pünktlich fertig geworden wäre. Es war zwar nicht immer leicht, doch es gab immer eine Lösung.

Patrick Getzmann, Simon Hackfort und Peter Nowak

Im November 2011

Kapitel 1. Einleitung

In diesem Kapitel:

„Vieles ist neu“

„Die »abgeschnittenen Zöpfe«“

„Was sollten Sie bereits wissen, bevor Sie anfangen?“

„Es folgt ...“

„Fehler in diesem Buch“

„Das Wirrwarr der Versionsnummern“

Vieles ist neu

Selten erlebt man, dass eine neue Version eines Produkts von Grund auf neu entwickelt worden und nicht bloß eine reine Aktualisierung ist. Es gibt normalerweise genügend Gründe dafür, dass man aus Kompatibilitätsgründen vieles beibehält. So enthält selbst heute Windows 7 einige Anteile von Windows 3.11.

Windows Phone 7, oder besser gesagt Windows Phone, stellte einen solchen Neuanfang dar – wenn man die dennoch tief darin steckende Basis Windows Embedded CE einmal ausblendet. Mit anderen Worten: Es war eine »1.0«-Version. Doch warum ist das so?

Beim bisherigen Windows Mobile war Microsoft an einen Punkt angelangt, an dem ein radikaler Schnitt notwendig geworden war. Dies fing bereits mit der Ausrichtung der Plattform an. Wurden mit Windows Mobile eher noch Business- und Enterprisekunden gleichermaßen angesprochen, so steht für Windows Phone der Endanwender im Fokus. Dies wird auch auf längere Zeit so bleiben, da Windows Mobile vorerst unter der Flagge »Windows Embedded Handheld« für geschäftliche Zwecke weiter bestehen wird. Es ist jedoch zu vermuten, dass die neue Plattform irgendwann auch daraufhin ausgerichtet werden wird.

Für diese Annahme gibt es mehrere Gründe: Business- und Enterprisekunden haben ganz andere Anforderungen als Consumerkunden. So laufen auf diesen Geräten Businessanwendungen, die an Windows Phone, sofern überhaupt möglich, erst angepasst werden müssten. Dies würde Kosten verursachen, die Geschäftskunden natürlich vermeiden wollen, da sie ja bereits in die laufende Software investiert haben. Windows Embedded Handheld lässt sich daher als Kompatibilitätsmodus verstehen.

Diese Zweigleisigkeit von Windows Phone und Windows Embedded Handheld bietet die Möglichkeit, alte Zöpfe abzuschneiden. Doch warum sollte man das tun?

Schaut man sich den Markt für mobile Endgeräte an, so findet man schnell zwei große Mitbewerber: Zum einen das iPhone von Apple, zum anderen verschiedene Geräte auf Android-Basis. Diese beiden Anbieter verfolgen dabei unterschiedliche Philosophien: Während das iPhone ein eher geschlossenes Ökosystem ist, stellt Android lediglich ein Basisbetriebssystem bereit, das frei an nahezu jede Hardware angepasst werden kann – der Sourcecode dafür ist quelloffen. Die Ausrichtung ist klar definiert: Das iPhone ist für Consumerkunden gedacht, Android dagegen sowohl für Consumer- als auch Businesskunden.

Aus dieser Perspektive lässt sich Windows Mobile in die Android-Kategorie einordnen. Das Basisbetriebssystem wird bei Android wie auch Windows Mobile an Hardwarehersteller gegeben, die es an ihre Geräte anpassen und ausliefern. Da hierbei jedoch keine Vorgaben an Hardware, Software und Peripherie erfolgen, führt dies dazu, dass es zwar verschiedene Geräte mit den schönsten Formfaktoren gibt, der Hardwarehersteller aber gerne zum Sparen bei den Produktionskosten neigt. So werden manchmal kleinere CPUs und schwächere Akkus eingesetzt, um die Geräte möglichst kostengünstig verkaufen zu können.

Bei Windows Mobile führte das in den vergangenen Jahren teilweise dazu, dass Geräte auf den Markt kamen, die – gelinde gesagt – nicht für das Betriebssystem ausgelegt waren und sich dem Benutzer gegenüber als »langsam« darstellten.

Doch damit nicht genug: Fehlende Softwarevorgaben brachten einige Hardwarehersteller dazu, eigene Oberflächen für ihre Geräte zu konzipieren. Dies soll nicht etwa heißen, dass diese Oberflächen schlecht waren. Doch konnte man manchmal nicht mehr erkennen, welches Betriebssystem dahinter sein Werk verrichtete. Somit konnte ein Windows Mobile-Gerät des einen Herstellers ganz anders aussehen, als das eines anderen. Hinzu kam, dass für die eigene Oberfläche sogar Basisbibliotheken abgeändert wurden, sodass der Entwickler sich mitunter mit unnötigen Bugs abquälen musste.

Ebenso nahmen einige Hersteller Anpassungen für Mobilfunkbetreiber vor – von T-Mobile ausgelieferte Geräte unterschieden sich manchmal deutlich von den Vodafone-Varianten. Mit Dreingaben in Form von freier Software sollten die Geräte zudem zwar aufgewertet werden, was sich jedoch auf die Stabilität der Geräte auswirken und zu Abstürzen führen konnte.

Ein anderes Problem betrifft Softwareaktualisierungen: Man sieht sich in einer Abhängigkeit zu einem Hersteller (und oft auch Mobilfunkanbieter) gefangen. Ein Update für dasselbe Gerät bei Vodafone funktioniert nicht unbedingt bei E-Plus und umgekehrt. Manchmal stellt sich dem Hardwarehersteller auch die Frage, warum er eine für ihn kostenträchtige Aktualisierung anbieten sollte, während er doch besser ein neues Gerät mit aktualisiertem Betriebssystem verkaufen könnte.

Beim iPhone gibt es diese Probleme nicht. Es gibt nur eine Hardware, auf der das Betriebssystem ausgeführt wird. Der eine und einzige Hardwarehersteller kann seine Betriebssystemaktualisierungen direkt bereitstellen. So ist es auch nicht verwunderlich, dass ein iPhone der ersten Stunde auch heute noch mit der aktuellen iOS-Version betrieben werden kann. Auch Performanceprobleme sind dem iPhone größtenteils fremd, da alle Anwendungen, die in iTunes für das iPhone bereitgestellt werden, zuvor einem Genehmigungsprozess unterzogen werden. Dieses Verfahren gewährleistet, dass keine Applikation dem iPhone Probleme bereiten kann.

Aus dieser Perspektive kann Windows Phone zur iPhone-Kategorie gerechnet werden, mit dem Unterschied, dass es zu diesem Betriebssystem mehr als nur einen Hardwarehersteller gibt. Trotzdem möchte sich Windows Phone ebenfalls als geschlossenes Ökosystem präsentieren. Damit jedoch eine Konsistenz beim »Erlebnis« des Betriebssystems und seiner Apps gewährleistet werden kann, gibt es strenge Hardwarevoraussetzungen, die ein Hersteller erfüllen muss, um Windows Phone als Betriebssystem auf seinen Geräten einsetzen zu können.

Windows Phone 7.5 ist nicht einmal ein Jahr nach der Veröffentlichung von Windows Phone kostenlos als Update auf dem Markt erschienen. 7.0 hatte einige Startschwierigkeiten, die typisch für neue Plattformen sind – es wurde nicht ganz so angenommen wie gewünscht; das erste große Update wurde im März/April teilweise zum Desaster, sodass selbst heute einige Geräte vom Provider immer noch nicht mit NoDo ausgestattet sind. Auch der App Hub, über den neue Anwendungen zur Zertifizierung eingereicht werden, besaß zu Beginn eine Menge Kinderkrankheiten. Unterm Strich zählt jedoch, dass man sich den Problemen schnellstmöglich gestellt hat.

Windows Phone als solches bringt viele Detailverbesserungen mit, welche der Plattform nun die Fähigkeit verleihen als Version »1.0« wahrgenommen zu werden. Zuvor fehlten noch einige Funktionen und Vorhandene waren nicht immer bis zu Ende gedacht. Man erinnere sich nur an die fehlende Funktionalität zum Einstellen von eigenen Klingeltönen.

Die »abgeschnittenen Zöpfe«

Ohne dem weiteren Inhalt des Buchs vorgreifen zu wollen, bietet es sich an dieser Stelle an, sich einmal die großen technologischen Unterschiede zwischen dem »Früher« von Windows Mobile und dem »Heute« von Windows Phone vor Augen zu führen. Zunächst sollten Sie verstehen können, warum bei Windows Phone die eine oder andere Entscheidung genau so gefällt worden ist und nicht anders – warum ein Windows Phone so ist, wie es ist, und warum es nicht einfach ein Windows Mobile 7 mit denselben »Nachteilen« wie seine Vorgänger ist.

Multitasking vs. verwaltetes System

Windows Phone ist in erster Linie ein System für Consumer. Diese haben oft ganz andere Erwartungen an ein Smartphone als Businessanwender.

Consumer wollen unterhalten werden. Dazu sollen die Anwendungen auch noch schön aussehen. Unter anderem beruht diese »Schönheit« auf Animationen. Wechselt man beispielsweise von einer Page zur nächsten, so erscheint ein gleitender, animierter Übergang viel interessanter als ein schlagartiges Aufblenden der neuen Seite. Auch bei der Navigation durch die Einträge in einer ListBox erscheint es einfach natürlicher, wenn die Elemente sich mittels Animation »bewegen«.

Diese »Natürlichkeit« leitet sich aus Erfahrungen in der realen Welt ab. So öffnet sich beispielsweise eine Tür eben nicht schlagartig. Das Öffnen einer Tür selbst wird sozusagen wie eine Art »Animation« wahrgenommen.

Warum aber sollten Animationen ein geschlossenes System notwendig machen? Eine Silverlight- oder WPF-Anwendung wird doch auch auf offenen Systemen wie beispielsweise Windows 7 ausgeführt?

Nun, dort stehen einfach mehr Ressourcen (RAM, leistungsfähigere CPU, bessere GPU usw.) zur Verfügung. Es können einfach mehr Aufgaben gleichzeitig erledigt werden. Doch auch eine Windows 7-Maschine kann an ihre Grenzen stoßen: Werden Anwendungen im Hintergrund ausgeführt, die sehr viel CPU-Zeit verbrauchen, können Animationen ins »Ruckeln« geraten.

Ein »Ruckeln« wird jedenfalls vom Anwender als unnatürlich empfunden. Er fühlt sich gestört und nutzt eine derart lahmende Anwendung einfach nicht mehr – oder er stempelt das Gerät als zu leistungsschwach ab.

Ein Betriebssystem hingegen, das in die Ausführung der Anwendungen eingreift, kann selbst bestimmen, ob und wann eine Anwendung angehalten oder beendet werden muss, wenn nicht genügend Ressourcen zur Verfügung stehen. Genau darum werden gerne geschlossene Systeme verwendet.

Silverlight vs. Windows Forms

Die vielen .NET-Entwicklern inzwischen ans Herz gewachsenen Windows Forms-Anwendungen sind mit Windows Phone nicht mehr möglich – an ihre Stelle rückt nun Silverlight.

Zwar wäre es prinzipiell möglich gewesen, unter Windows Phone auch das Ausführen von Windows Forms-Anwendungen zu erlauben, doch will Microsoft offenbar keinen weiteren Aufwand in diese Technologie stecken. Insbesondere Consumeranwendungen werden heute bereits kaum noch mit Windows Forms erstellt (außer es gibt einen guten Grund dafür). Denn mit Windows Forms ein Erlebnis für den Benutzer zu erschaffen, ist eher schwierig. Es handelt sich bei Windows Forms nämlich um eine Technologie, die von Hause aus Animationen nicht direkt ermöglicht.

Die Zeit der flachen grauen Oberflächen mit noch dunkleren flachen Schaltflächen scheint abgelaufen zu sein. Sie werden hingegen noch häufig in Businessanwendungen eingesetzt, wo es eher auf klare Funktionalität als auf visuelle Eleganz ankommt.

Silverlight und WPF beruhen auf einem hierarchisch gegliederten System der Steuerelemente. Waren früher Steuerelemente nur »flach« auf einer Form angeordnet, so bringt dieses hierarchische System gewissermaßen eine dreidimensionale Komponente ins Spiel: Steuerelemente können innerhalb von anderen Steuerelementen platziert werden, da fast jedes Steuerelement zugleich als Container für wiederum andere Steuerelemente fungieren kann.

Für flexible und per Styles im Aussehen anpassbare Steuerelemente würde in Windows Forms ein nicht unerheblicher Entwicklungsaufwand anfallen. Unter Silverlight ist diese Flexibilität und Anpassbarkeit schon beim Design berücksichtigt worden. Schaltflächen können nun generell über Vorlagen in ihrem Aussehen verändert werden, unabhängig davon, wie viele Instanzen der Schaltflächen wo auf einer Oberfläche verwendet werden.

Abbildung 1.1 Ein ListBox-Steuerelement in einer Silverlight- und in einer Windows Forms-Anwendung

Die Bildschirmdarstellung in Windows Forms erfolgt im Gegensatz zu Silverlight rein auf Pixelbasis. Silverlight setzt hingegen auf Vektoren. Der Vorteil ist klar: Anwendungsoberflächen und ihre Elemente lassen sich auf beliebige Größe skalieren, ohne dabei an Schärfe zu verlieren. Daher kann es dem Entwickler auch egal sein, welche Bildschirmauflösung für die Anwendung genutzt wird – die Darstellung »verpixelt« nicht.

Das Entwicklungsmodell von Silverlight erinnert mehr an das einer Webanwendung als an eine Forms-Anwendung. Dies liegt an der Aufteilung in die Oberflächengestaltung, also dem so genannten Markup, einerseits und dem zugehörigen Quellcode (Code-Behind) andererseits. Es ist erheblich einfacher und flexibler, die Beschreibung der Oberfläche in XAML zu erstellen, als per reinem Quellcode. Der Designer kann sich um das Oberflächendesign kümmern und der Entwickler zeitgleich um die Funktionalität, ohne dass sie sich in die Quere kommen.

Warum wurde jedoch Silverlight als Basis für Windows Phone-Anwendungen ausgewählt, und nicht gleich die Windows Presentation Foundation (WPF)? Ganz einfach: Silverlight bildet nur eine Teilmenge von WPF ab. Es wurde bereits darauf ausgelegt, in einer Sandbox, dem Webbrowser, ausgeführt zu werden. Für die Konzipierung eines geschlossenen Systems ist Silverlight daher die ideale Wahl. Der Vorteil der Beschränkung auf eine WPF-Teilmenge in Silverlight liegt auch darin, dass diese erheblich einfacher an die Voraussetzungen einer im Vergleich zur üblichen PC-Hardware leistungsschwächeren Smartphone-Hardware angepasst werden kann. Seit Silverlight 3 sind Hardwarebeschleunigung & Co. direkt integriert, sodass auch von daher schon weniger Anpassungen anfallen.

Windows Phone basiert indes auf Silverlight 4.

Managed vs. native Code

Warum ist es nicht mehr möglich, Anwendungen mit C++ zu erstellen? Unter Windows Embedded CE geht es schließlich auch mit Silverlight? Nun, rein technisch spräche dem nichts entgegen.

C++ ist jedoch nicht jedermanns Sache. Gerade unerfahrenere Entwickler können hier viele Fehler machen, die nicht nur die berüchtigten Speicherlecks entstehen lassen, sondern womöglich die Funktionsfähigkeit des ganzen Betriebssystems in Mitleidenschaft ziehen können. Ein vergessener Destruktor in C++ kann dazu führen, dass der verfügbare Hauptspeicher schwindet und schließlich das Gerät irgendwann neu gestartet werden muss, da gar kein Speicher mehr zur Verfügung steht. Windows Mobile-Geräte haben häufig darunter zu leiden.

Managed Code (oder auch verwalteter Code genannt) ist wesentlich einfacher zu handhaben. So wird, wie bei Silverlight seit jeher üblich, durch die Zwischenschicht des IL-Codes der direkte Durchgriff auf das System beschränkt. So lässt sich etwa der Zugriff auf das Dateisystem, auf den Hauptspeicher oder auf Gerätefunktionen besser kontrollieren. Ein Isolated Storage ist zudem als Datenablage völlig ausreichend.

Während die meisten C++-Anwendungen auf Bibliotheken des Betriebssystems direkt zugreifen und auf diesem Wege möglicherweise Schaden anrichten können, lässt sich dies mit verwaltetem Code leicht unterbinden. Eine Sicherheitsebene, bestehend aus Attributen, verhindert den Aufruf von kritischem Code – und schon befindet man sich tendenziell auf der sicheren Seite.

Darüber hinaus gibt es bereits eine sehr breite Basis an .NET-Entwicklern, die zumeist C# und Visual Basic .NET einsetzen. Um diesen den Umstieg auf diese neue Plattform so einfach wie möglich zu gestalten, ist managed Code einfach ideal.

Wieso XNA?

Da es sich bei Windows Phone um eine Plattform für Consumer handelt, sind automatisch auch Spiele ein wichtiges Thema. Was wäre da nun naheliegender als das XNA Framework für das Windows Phone anzubieten, wenn das System selber bereits auf managed Code beruht?

XNA ist schließlich nichts Neues. Spiele auf XNA-Basis gibt es schon seit langer Zeit für PC, Xbox 360 und Zune. XNA für Windows Phone erleichtert es daher Spieleentwicklern eine neue Plattform nach nur wenigen Anpassungen zusätzlich zu unterstützen.

Mit Windows Phone 7.5 ist es mittlerweile möglich, Silverlight und XNA in einem Projekt zu mischen, was einige Vorteile mit sich bringt. Mehr hierzu erfahren Sie in Kapitel 5.

Offenes vs. geschlossenes System

Doch wieso sollte es sinnvoll sein, ein System zu schließen? Windows Mobile war doch schon ein offenes System? Wird so nicht der Anwender entmündigt?

Die Offenheit eines Systems ist ein für Businesskunden und fortgeschrittene »Power User« wichtiger Punkt. Diese wissen genau, wie das System arbeitet und wie sie sich bei Problemen selbst helfen können. Was ist aber mit dem reinen Consumer?

Diesem ist es wichtig, dass sein System nicht von Schadsoftware heimgesucht wird. So etwas wie einen Virenscanner will er erst gar nicht auf dem Gerät haben. Auch ist ihm egal, was unter der Benutzeroberfläche abläuft. Wichtig ist, dass seine Spiele und Apps laufen, und dass er sich um nichts weiter kümmern muss. Alles soll einfach und sicher sein.

Wo seine Songs oder Fotos im internen Speicher landen, ist ihm völlig egal. Ein Dateisystem an sich braucht er nicht. Er will seine Daten nur im Musicplayer oder Fotoviewer angeboten bekommen. Dass er eigentlich die Datei foto_23.jpg aus dem Ordner \Eigene Dateien\Fotos an eine E-Mail anhängen müsste, ist für ihn irrelevant. Er möchte bloß das Bild sehen und es dann direkt an die E-Mail anhängen können, egal wo es sich physisch tatsächlich befindet. Ein geschlossenes oder besser: »verschlossenes« System reicht ihm also völlig.

Was sollten Sie bereits wissen, bevor Sie anfangen?

Dieses Buch, das ja gerade nicht einen Titel wie »Windows Phone-Entwicklung in 21 Tagen« trägt, setzt einiges an Basiswissen voraus:

Umgang mit Microsoft-Betriebssystemen

Umgang mit Mobilfunkgeräten/Smartphones

Allgemeine Kenntnisse in der Entwicklung von .NET-Anwendungen

Erfahrung in der Syntax der C#-Programmiersprache

Erfahrung in der Silverlight-Technologie

Arbeiten mit LINQ (Language Integrated Query)

Folgende Kenntnisse sind zudem von Vorteil:

Kenntnisse in der Entwicklung von .NET Compact Framework-Anwendungen

Arbeiten mit einem Windows Mobile-Emulator

Datenkommunikation per WebServices bzw. WCF-Diensten (Windows Communication Foundation)

Zu diesen Punkten gibt es empfehlenswerte Bücher, die im Anhang A gesammelt aufgezählt werden. Dazu finden Sie in den einzelnen Kapiteln dieses Buchs weitere sinnvolle Empfehlungen.

Das Buch verwendet als alleinige Programmiersprache C#. Das hat nichts damit zu tun, dass die Autoren etwa zu faul gewesen wären, Visual Basic .NET-Beispiele zusätzlich zu erstellen und zu beschreiben. Vielmehr stand im Vordergrund, die zu Verfügung stehenden Buchseiten mit konzeptionellen Informationen zu füllen, als sich um verschiedene Syntax unterschiedlicher Sprachen kümmern zu müssen.

In diesem Buch wird auf die englischsprachigen Versionen der Entwicklungsumgebung und der Zusatzprogramme gesetzt. Dies hat zwei Gründe. Der erste Grund ist, dass der im Falle eines Fehlers von einer englischsprachigen Anwendung gelieferte genaue Wortlaut der Fehlermeldung im Internet leichter gefunden werden kann, da global die englischsprachige Entwicklergemeinde am größten ist.

Der zweite Grund ist, dass die englischsprachigen Originale immer früher erscheinen als lokalisierte Versionen, und dass man für diese wiederum mehr Informationen im Internet erhält. Dazu schleichen sich in lokalisierte Versionen gerne mal kleinere Fehler ein, die im »Original« nicht vorhanden sind. Sie profitieren also doppelt von einer englischsprachigen Version.

Es folgt ...

Dieses Buch umfasst neben dem Vorwort zwölf weitere Kapitel sowie einen Anhang.

In diesem ersten Kapitel haben Sie bereits einiges über die Hintergründe von Windows Phone erfahren.

Kapitel 2 bietet eine Übersicht und einen Einstieg in die Entwicklungstools, die für Windows Phone erhältlich sind.

Kapitel 3 »seziert« das Betriebssystem von Windows Phone und die zugehörige Hardware. Es wurde bewusst so weit vorne im Buch platziert, um für die nachfolgenden Kapitel eine gute Übersicht über das System zu geben.

Kapitel 4 widmet sich dann endlich der Entwicklung mit Silverlight für Windows Phone. Es beginnt mit einem einfachen »Hello World«-Beispiel. Später werden interessante Themen wie das MVVM-Entwurfsmuster und die Lokalisierung behandelt. Primäres Thema ist jedoch Silverlight für Windows Phone.

Kapitel 5 beschäftigt sich eingehend mit dem XNA Framework und exemplarisch mit dem Erstellen von Spielen. Sie werden hier einige Grundfunktionen des XNA Framework kennenlernen und sind nach dem Lesen des Kapitels und dem Studium des beiliegenden Quellcodes hoffentlich in der Lage, eigene Spiele für Windows Phone zu schreiben.

Kapitel 6 befasst sich mit plattformspezifischen Eigenheiten, wie Orientierung, dem Dateisystem inklusive Komprimierung von Daten, Multi-Touch, Lokalisation, Tasks und anderen Themen, die sowohl für XNA als auch für Silverlight für Windows Phone von Interesse sind.

Um Netzwerkthemen geht es generell in Kapitel 7. Dort behandelt werden von einer einfachen Webabfrage über WCF-Dienste auch die Push-Notifications. Ebenso ist das Protokollieren der Netzwerkdaten mittels Fiddler ein Thema.

Um das Thema Datenbanken, welche seit Windows Phone 7.5 mit Linq2SQL unterstützt werden, kümmert sich das Kapitel 8.

Wie man Anwendungen vernünftig testen kann oder aber deren Verhalten nach einem Deployment protokollieren kann, zeigt Kapitel 9.

Bevor es zum Deployment einer Anwendung kommt, ist das Thema Performancetuning wichtig. Wie dies mit dem Visual Studio seit dem Windows Phone SDK 7.1 geht, zeigt Kapitel 10.

Mit dem eigentlichen Deployment befasst sich danach auch gleich Kapitel 11. Was ist notwendig, um eine Anwendung in den Marketplace einstellen zu können? Welche Regeln gelten dort? Welche Tasks gibt es speziell für den Marketplace?

Nachdem in den bis dahin vorangegangenen Kapiteln der komplette Entwicklungszyklus einer App behandelt worden ist, beschäftigt sich Kapitel 12 mit der Migration bestehender Anwendungen und Spiele. Auch wenn dieses Kapitel eher theoretischer Natur ist, so bietet es doch sinnvolle Hilfestellungen zu Migrations-vorhaben.

Last but not least: der Anhang A. Hier werden hilfreiche Ressourcen im Internet aufgezeigt, die man zumindest mal gesehen haben sollte – unter anderem auch Ressourcen für Designer. Woher Sie Updatekapitel und die Beispiele zu diesem Buch zum Herunterladen erhalten, erfahren Sie dort. Auch wird hier gezeigt, wie man eine Windows Phone-Anwendung mit Sketch Flow als Prototyp »skizzieren« kann.

Fehler in diesem Buch

Sollten Sie Schreib- oder Tippfehler in diesem Buch finden, so haben Sie eines unserer vielen versteckten Rätsel in diesem Buch entdeckt!

Natürlich ist dies nur als Scherz gemeint. Zwar wurde dieses Buch mehrfach, zwischen den Autoren und externen Personen hin und her pendelnd, Korrektur gelesen, sowie auch final nochmal durch das Lektorat, doch bleibt es einfach nicht aus, dass der eine oder andere Fehler der Entdeckung entgeht.

Sollte dies im Fließtext geschehen sein, so ist dies eher halb so wild. Fehler in Quelltexten nehmen wir jedoch ernst. Sollten Sie dort einen Fehler finden, scheuen Sie sich nicht, uns dies via E-Mail mitzuteilen. Wir werden danach gerne eine Korrektur des betroffenen Beispiels in unserem Blog unter http://wp7buch.wordpress.com veröffentlichen.

Haben Sie darüber hinaus Anregungen, Neuigkeiten, Kritik, Wünsche, so können Sie uns diese ebenso via E-Mail zukommen lassen.

Das Wirrwarr der Versionsnummern

Windows Phone 7.5, welches den Codenamen Mango enthielt, besitzt bedauerlicherweise zwei Versionsnummern. Aus Marketingsicht wird Windows Phone hier mit der Versionsnummer »7.5« bezeichnet, wohingegen das Windows Phone OS und das Windows Phone SDK die Versionsnummer »7.1« erhalten haben. Dies spiegelt sich auch beim Erstellen eines neuen Projekts wieder, wo »7.1« als neue Version zur Verfügung steht. Die initiale Version des Windows Phone, wie auch das damals als Erste erschienene Update mit dem Codenamen NoDo firmieren indes unter der Versionsnummer »7.0«, für welches auch mit dem Windows Phone SDK 7.1 noch neue Projekte erstellt werden können. Davon sollte man jedoch absehen, da Anwendungen für »7.0« früher oder später auf »7.1« aktualisiert werden müssen. Ebenfalls hat man sich von der 7 in Windows Phone 7 verabschiedet: Die Plattform heißt nun schlichtweg Windows Phone.

Da dieses Buch eine überarbeitete Fassung der Erstauflage ist, werden Sie noch des Öfteren über Windows Phone 7 stolpern. Gemeint ist in diesem Fall jedoch Windows Phone als Plattform, wenn nicht anders ausgewiesen.

Zu guter Letzt: Der Name der Entwicklungswerkzeuge wurde auch noch geändert. So wird aus den Windows Phone Developer Tools nun das Windows Phone SDK.

Kapitel 2. Hello new World

In diesem Kapitel:

„Laufen lernen“

Es wurde schon mehr als einmal gesagt, doch kann man es nicht oft genug sagen: Windows Phone ist etwas Neues. Wer versucht, Windows Phone mit Windows Mobile zu vergleichen, kann auch Windows Phone gleich mit Android oder Symbian vergleichen: Sie haben fast alle nichts miteinander gemein, außer dass es sich um mobile Betriebssysteme handelt.

Deshalb widmet sich dieses Kapitel den ersten Schritten in dieser Technologie und beschreibt die für die Entwicklung einer mobilen Anwendung vorauszusetzenden Schritte.

Laufen lernen

Wer ein Windows Phone mal verwendet hat und ein bisschen technisch versiert ist, der bekommt schnell Lust, selbst Apps zu entwickeln.

Nie war es einfacher, mit der Entwicklung von Apps zu beginnen, als mit dem Windows Phone.

Dieser Teil beschreibt die notwendigen ersten Schritte, um mit der Entwicklung beginnen zu können. Dies wird in den folgenden Kapiteln weiter vertieft werden.

War es unter Windows Mobile noch nötig, neben einem kostenpflichtigen Visual Studio 2008 ab der Professional-Variante noch weitere, notwendige SDKs zu installieren, bekommt man heute alles aus einer Hand. Der Schlüssel hierfür ist eine knapp 3 MB große Installationsdatei, die im Web unter http://create.msdn.com/ bezogen werden kann.

Hinweis

Auch an dieser Stelle wurde ein großer Schnitt gemacht: Die Entwicklung von Windows Phone-Anwendungen ist allein Visual Studio ab Version 2010 vorbehalten. Ältere Windows Mobile und Windows Embedded Handheld Anwendungen lassen sich nur unter Visual Studio 2008 entwickeln und werden nicht von Visual Studio 2010 unterstützt.

Bei diesem Installationsprogramm handelt es sich um einen so genannten Bootstrapper. Dieser analysiert bei seiner Ausführung die bereits vorhandenen Anwendungen, die zum Entwickeln benötigt werden, und installiert die fehlenden Teile. Für diese werden die fehlenden Softwarepakete aus dem Web nachgeladen. Das Schöne daran ist, dass alle für die Entwicklung benötigten Anwendungen kostenlos in der Express-Variante enthalten sind. Sollte man kein Gerät besitzen, ist dies auch kein Problem, da mit dem Installationsprogramm ebenfalls ein sehr leistungsstarker Emulator ausgeliefert wird.

Die Systemvoraussetzungen sind, zumindest bezogen auf Entwickler-gerechte Systeme, sehr moderat gehalten. Es wird lediglich ein Computer mit installiertem Windows Vista oder Windows 7 benötigt. Wie sieht es jedoch mit Speicher und der eingesetzten CPU aus? Dies ist eine Frage, die sich schon seit Jahren nur schwer beantworten lässt, da auf dem Markt sehr unterschiedliche Hardware angeboten wurde und wird.

Damit man halbwegs vernünftig arbeiten kann, sollte eine Dual-Core CPU mit mindestens 2GB RAM verwendet werden. Richtig gut wird es ab 4GB. Es gilt jedoch das Motto: Je besser die CPU und je mehr RAM man hat, umso höher wird die Performance sein.

Für die Entwicklung unter Verwendung des Emulators gelten jedoch spezielle Anforderungen an die Grafikkarte. Diese muss DirectX 10 sowie einen WDDM 1.1 Treiber unterstützen.

Sind einmal die Hardwarefragen geklärt und die Installation vollbracht, finden sich die folgenden Komponenten auf dem Computer:

Hinweis

Es kann jedoch auch Situationen geben, in denen eine webgestützte Installation nicht möglich ist, da möglicherweise keine Internetverbindung zur Verfügung steht.

Für diesen Fall erhält man unter http://download.microsoft.com/download/6/E/7/6E795194-EE2D-4636-AEBD-D1C42D2E06E1/WPSDKv71_en1.iso das englische Installationspaket als DVD-Abbild im ISO-Format. Dieses kann dann entweder auf eine DVD gebrannt, oder mit einem entsprechenden Programm direkt geöffnet werden, sodass bei der Installation das Nachladen von Komponenten nicht mehr nötig ist.

Microsoft Visual Studio 2010 Express for Windows Phone

Möchte man Anwendungen erstellen ist Visual Studio der Startpunkt. Hier kann man wahlweise in C# oder Visual Basic .NET seine Anwendung erstellen.

Pro Programmiersprache gibt es gleich neun Projektvorlagen, die bei den ersten Schritten helfen: eine generelle Vorlage zum Erstellen einer Windows Phone-Anwendung, gefolgt von einer Projektvorlage zum Erstellen von datengebundenen Anwendungen und eine Vorlage zum Erstellen von Komponenten, die in anderen Anwendungen wiederverwendet werden sollen. Dazu kommen die Vorlagen zum Erstellen einer Pivot- oder Panorama-Anwendung.

Die Vorlage zum Erstellen von Rich Graphics Application ist eine Vorlage für Silverlight für Windows Phone-Anwendungen, welche bereits das Rendern von Grafiken mittels XNA unterstützt.

Mit dem Audio Playback Agent lassen sich Background Agents erstellen, die also im Hintergrund Audiodaten wiedergeben. Mit dem Audio Streaming Agent hingegen lassen sich Background Agents erstellen, die im Hintergrund Audiodaten streamen. Über Scheduled Task Agent lassen sich Background Agents erstellen, die ressourcenintensive oder periodische Aufgaben im Hintergrund erledigen können.

Abbildung 2.1 Projektvorlagen für Silverlight für Windows Phone-Projekte

Als Technologie wird hier Silverlight verwendet. Diese dürfte bereits aus dem Web bekannt sein. Sie ist eine Alternative zu Adobe Flash, das man von vielen Browserspielen her kennt. Diese Technologie hat sich mittlerweile bewährt. Sie ist flexibel und ausgereift, sodass die Portierung auf Windows Phone nur der nächste logische Schritt war.

Was alle Projektvorlagen von Visual Studio gemeinsam haben, ist die sehr starke Designansicht von Oberflächen. Dabei wird die Oberfläche generell beim Erstellen so angezeigt, wie diese später auch auf dem Gerät dargestellt wird. Auch das dargestellte Metro-Design hilft bei der Erstellung von Oberflächen. Natürlich sind die Einstellungen auch änderbar, sodass eine Anwendung nicht zwangsweise im Metro-Design dargestellt wird.

Mehr zum Thema Metro erfahren Sie in Kapitel 3 im Abschnitt „Das Metro-Design“, sowie in Kapitel 4 im Abschnitt „Metro revisited“.

Abbildung 2.2 Visual Studio als Entwicklungsumgebung

Microsoft Expression Blend für Windows Phone

Häufig wird gesagt, dass Entwickler keine Designer sind. Dies ist auch nicht gelogen, denn während Entwickler eher auf die Funktionalität einer Anwendung fixiert sind, haben Designer ganz andere Ziele. Letzteren geht es schlicht und ergreifend um die Präsentation einer Anwendung. Hier spielen Schriftarten, Darstellungsweise und vielleicht auch noch sinnvolle Animationen eine Rolle, was auch der Grund ist, dass viele Designer in Werbeagenturen und nicht in Entwicklungshäusern arbeiten.

Genauso wie Entwickler sind Designer ein bestimmter Menschenschlag, was sich auch in den Anwendungen widerspiegelt. Während der Entwickler eher darauf bedacht ist, den Quellcode optimal dargestellt zu bekommen und die Oberfläche eher rudimentär zu »designen«, so ist für den Designer das Design das A und O. Ihn interessiert in der Regel kein Quellcode, sondern der Zugriff auf graphische Elemente, Farbpaletten und dergleichen.

Deshalb sieht auch Expression Blend so anders aus. Es erinnert schon auf den ersten Blick eher an eine Grafikanwendung wie Photoshop – und nicht an eine Entwicklungsumgebung. Expression Blend ermöglicht ebenfalls die Erstellung von Windows Phone-Anwendungen in C# und Visual Basic .NET. Zwar mag es zunächst komisch erscheinen, dass man in einer Designanwendung eine Programmiersprache auswählen soll, wo er doch »nur« die Anwendungsoberfläche designen soll. Doch dies hat einen tieferen Sinn: Visual Studio und Expression Blend arbeiten Hand in Hand. So wird auch von Expression Blend im Hintergrund Quellcode für Silverlight erzeugt, sodass prinzipiell Entwickler für die Oberfläche und für den Quellcode zeitgleich an einem Projekt arbeiten können. Expression Blend bietet hingegen über den Zweck als Designanwendung hinaus noch einige sinnvolle Entwicklerfunktionen. So lässt sich nicht nur der Quellcode der Anwendung darstellen und ändern, sondern eine gestaltete Anwendung auch direkt auf einem Emulator oder Gerät ausführen.

Expression Blend bietet dieselben Projektvorlagen wie Visual Studio, um Anwendungen zu designen und zu erstellen.

Abbildung 2.3 Expression Blend ist die Anwendung für Designer

XNA Game Studio 4.0

XNA Game Studio stellt genau das Gegenstück zum Erstellen von Silverlight-Anwendungen in Expression Blend und Visual Studio dar. Es dient vorrangig Spieleentwicklern als die Plattform, mit der sich Spiele auf der Basis des XNA Framework erstellen lassen.

Das XNA Framework folgt jedoch einem anderen Ansatz als Silverlight, obwohl es ebenfalls als Programmiersprache C# unterstützt. Silverlight forciert den Ansatz, dem Entwickler Funktionen zur Verfügung zu stellen, die schnell zu einer vollwertigen Anwendung führen, sei dies durch Hilfsklassen oder durch Anpassung vorhandener Steuerelemente. Das XNA Framework ist dagegen eher eine thematisch geordnete Ansammlung von oft benutzen Funktionen. Es unterstützt den Entwickler, sich auf das eigentliche Spielkonzept konzentrieren zu können, anstatt sich mühsam mit dem Zeichnen des Inhalts auseinandersetzen zu müssen. Es hat ein ganz anderes Programmiermodell zur Folge.

Auch das XNA Framework ist nicht neu. Es existiert schon länger für die Xbox 360, PC und Zune, was den Vorteil mit sich bringt, Spiele auf dieser Basis recht einfach zwischen den Plattformen portieren zu können. Da Windows Phone ja bekanntlich auch Spiele unterstützt, ist die Portierung der XNA-Plattform natürlich der nächste logische Schritt gewesen.

Auch wenn das XNA Game Studio wie eine eigene Anwendung erscheinen mag, ist es in Wahrheit eine spezialisierte Visual Studio-Variante, die neben einigen Tools noch eine Ansammlung von Projektvorlagen umfasst.

Abbildung 2.4 Projektvorlagen für XNA-Projekte

Abbildung 2.5 So sieht ein neues XNA-Projekt aus

Der Emulator

Aus allen zuvor genannten Anwendungen heraus lässt sich der Emulator starten. Zwar ist das separate Starten des Emulators vom Desktop aus mit ein paar Tricks möglich, jedoch nicht von Hause aus vorgesehen.

Erstellt man ein neues Projekt in einer der Anwendungen und startet das Debuggen mittels , so wird der Emulator gestartet, und die erstellte Anwendung wird darauf ausgeführt. Man kann sich innerhalb des Emulators jedoch auch »frei« bewegen. Betätigt man die Start-Hardwaretaste, so befindet man sich im StartBildschirm, der sehr übersichtlich gestaltet ist. So ist das einzige sichtbare Tile der Internet Explorer. Dieser verhält sich genau wie der Internet Explorer selbst auf dem mobilen Endgerät. Hat der Computer, auf dem der Emulator ausgeführt wird, eine Internetverbindung, so wird grundsätzlich diese vom Emulator verwendet. Ansonsten finden sich keine installierten Anwendungen außer denen, die von Visual Studio selbst für das Gerät bereitgestellt worden sind.

Was im ersten Augenblick eher frustrierend wirken mag, reicht jedoch zur Entwicklung fast immer aus. Alle Funktionen, die eine Anwendung benötigt, werden vom Emulator zur Verfügung gestellt. Accelerometer und GPS können mittlerweile auch direkt verwendet werden, da diese seit dem Windows Phone 7.1 SDK ebenfalls emuliert werden. Dazu jedoch später in den entsprechenden Kapiteln mehr.

Abbildung 2.6 Mit Bing Maps ist die Emulation von GPS-Daten auch möglich

Tipp

Die fehlende Unterstützung für direkte Tastatureingaben im Emulator stört sehr. Stattdessen wird immer nur die virtuelle Tastatur des Emulators angeboten, wo die Texteingabe mittels Maus erfolgen muss. Weithin unbekannt ist, dass dies umgeschaltet werden kann.

aktiviert die Hardwaretastatur des Computers

aktiviert die virtuelle Tastatur des Emulators

schaltet zwischen diesen beiden Eingabemodi hin und her

Abbildung 2.7 Der Emulator sieht spartanisch aus, ist aber sehr gut nutzbar

... und was noch?

Neben den vorgestellten Anwendungen befinden sich nach der Installation des SDKs noch zwei zusätzliche Hilfsanwendungen auf dem Computer.

Die Anwendung Windows Phone Developer Registration ermöglicht es, handelsübliche Windows Phone-Geräte, die von Hause aus für nicht aus dem Marketplace stammende Fremdsoftware gesperrt sind, in Entwicklergeräte zu verwandeln – mehr dazu in Kapitel 11.

Abbildung 2.8 Anwendung zum Freischalten von handelsüblichen Windows Phone-Geräten als Entwicklergeräte

Primär für bereits entsperrte Windows Phone-Geräte ist die Anwendung Application Deployment gedacht. Sie ermöglicht es, XAP-Installationsdateien auf dem Gerät oder Emulator einfach zu installieren.

Abbildung 2.9 Anwendung zum Deployment von XAP-Installationen

Vollversionen und Express in Koexistenz

Was passiert jedoch, wenn einem Visual Studio in der Express-Edition nicht ausreicht und ein »vollwertiges« Visual Studio beispielsweise für die Integration mit Team Foundation Server benötigt wird? Wie geht man vor, wenn man nur die Projektvorlagen für Windows Phone-Anwendungen in einem bereits installierten Expression Blend haben möchte?

Nichts einfacher als das, denn es gibt lediglich eine Regel, die zu beachten ist. Alle Entwicklungsanwendungen, die die Vorlagen erhalten sollen, müssen vor der Installation des oben genannten Installationspakets der Express-Edition bereits installiert sein. Das ist alles.

Die Installationsroutine erkennt automatisch, ob eine andere Variante von Visual Studio oder Expression Blend installiert ist, und fügt während der Installation den bereits vorhandenen Anwendungen die benötigten Projektvorlagen hinzu.

Einzig sollte darauf geachtet werden, dass jeweils die gleiche Sprachversion installiert ist. Eine englischsprachige Express-Edition installiert sich naturgemäß nicht in ein deutschsprachiges Visual Studio.

Kapitel 3. Windows Phone unter der Haube

In diesem Kapitel:

„Die neue Hardwareplattform“

„Die neue Softwareplattform“

„Das Metro-Design“

„Entwicklung mit dem Windows Phone“

Die neue Hardwareplattform

Eine der vielen Neuerungen, die Windows Phone mitbringt, ist die Hardwarespezifikation für Hersteller, die Windows Phone auf ihren Geräten einsetzen wollen.

An und für sich kann es dem Entwickler relativ egal sein, auf was für einer Hardware seine Applikation läuft, solange sie den Anforderungen der jeweiligen Applikation entspricht. Doch genau an diesem Punkt gab es in der Vergangenheit des Öfteren Probleme. Die Gerätehersteller waren im Prinzip vollkommen frei bei der Auswahl der Hardware.

In der Anfangszeit der Pocket PCs musste man sich als Entwickler noch mit mehreren Prozessorarchitekturen wie MIPS, ARM, SH2/4 oder x86 befassen. Im Regelfall war die jeweilige Prozessorarchitektur für den eigentlichen Programmcode relativ uninteressant und man brauchte nichts weiter zu beachten. Von Nachteil war jedoch, dass man für jeden Prozessortyp eine eigene Projektausgabe erhielt, die dementsprechend separat in eigenen CAB-Dateien oder in anderweitiger Form bereitzustellen waren. Dieses Problem hatte sich zumindest für reine Pocket PC- beziehungsweise Windows Mobile-Entwickler bald in Luft aufgelöst, denn Windows Mobile 2003 gab es nur noch in der ARM-Architektur.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!