Software für Windows Phone 7 entwickeln – wie fange ich an?

Frank Prengel, Microsoft Deutschland GmbH

Version 1.6 vom 21.02.2011

 

Plattform & Geräte

Windows Phone 7 (nachfolgend kurz WP7 genannt) ist Microsofts Neuansatz einer mobilen Plattform für den Consumer- und Business-Bereich. Es ist Nachfolger von Windows Mobile, welches primär für den Enterprise- und Businessbereich entwickelt wurde und einige Zeit parallel zu WP7 weiterexistieren wird.

WP7 basiert auf Microsofts Embedded-Betriebssystem Windows Embedded CE. Die Betriebssystemebene (APIs) ist für Softwareentwickler allerdings nicht zugänglich, dies ist allein den Geräteherstellern vorbehalten. Für die Entwicklung von Anwendungen und Spielen steht eine .NET-basierte Anwendungsplattform zur Verfügung, die weiter unten diskutiert wird.

Geräte mit WP7 verfügen grundsätzlich über kapazitive Touchscreens, welche für Fingerbedienung optimiert sind und Multitouch-Funktionalität (4 oder mehr Touchpoints) unterstützen. Die einheitliche Bildschirmauflösung ist WVGA (800 x 480), so dass aufwändiges Testen mit verschiedenen Geräten entfällt. (Lediglich auf geeignete Unterstützung von Portrait- und Landscape-Modus muss geachtet werden.)

Des weiteren verfügen alle WP7-Geräte über mindestens 256 MB RAM / 8 GB Flash, eine Kamera (mind. 5 Megapixel), Beschleunigungs- und Näherungssensor sowie einen digitalen Kompass. Zwecks Navigation sind drei Buttons auf der Vorderseite (Back, Home, Suche) sowie Power- und Kamera-Button vorhanden. Hardware-Tastatur oder andere Buttons und Sensoren sind optional. (siehe Dokumentation).

→ zurück zum Inhaltsverzeichnis

Anwendungsarten

Anwendungen für WP7 werden grundsätzlich in einem Framework entwickelt, welches auf .NET basiert und Stabilität, Performance und Sicherheit garantiert. In diesem Framework stehen zwei UI-Technologien zur Verfügung: Silverlight und XNA. (siehe Dokumentation).

Silverlight

Silverlight ist Microsofts Technologie für sog. Rich Internet Applications (RIA) und inzwischen für verschiedene Browser und Betriebssysteme verfügbar. Seit Version 3 sind Silverlight-Anwendungen auch außerhalb des Browsers ausführbar. Mit "Silverlight for Windows Embedded" steht seit Herbst 2009 auch ein Silverlight-Framework für Windows Embedded CE zur Verfügung.

Unter Windows Phone 7 stellt Silverlight ein vollwertiges Anwendungsframework für eigenständige Programme dar, läuft also nicht im Browser. Es basiert auf Silverlight 3 mit Erweiterungen und Anpassungen, bspw.

  • Durchgehende Hardwarebeschleunigung für höchste Performance,
  • Integration des Software-Keyboards für Eingabeelemente,
  • Multitouch-Unterstützung,
  • Zugriff auf die Gerätehardware (Kamera, GPS, Sensoren) über spezielle APIs,
  • Anpassung an das Anwendungsmodell von WP7 (voneinander isolierte Anwendungen),
  • Weniger enge Sandbox (für Cross-Domain-Zugriffe etc.)

XNA

XNA ist Microsofts .NET-basiertes Spieleframework für hochperformante 2D- und 3D-Spiele. Es ist auf dem PC, der Xbox und nun auch auf dem Windows Phone verwendbar und ermöglicht somit plattformübergreifende Spieleansätze.

Webbasierte Anwendungen

Hinsichtlich webbasierter Anwendungen, welche im mobilen Browser ausgeführt werden, können Entwickler auf den Internet Explorer setzen, welcher in WP7 neu entwickelt wurde und JavaScript, XMLHTTP, DOM, CSS und andere gebräuchliche Webtechnologien unterstützt. Ausführlichere Informationen hierzu finden sich in der Dokumentation.

→ zurück zum Inhaltsverzeichnis

Programmierwerkzeuge

Das zentrale Portal für Entwickler und Designer, die Apps & Spiele für WP7 schaffen, ist Microsofts App Hub.

Für die Programmierung für Windows Phone 7 stellt Microsoft kostenlose Programmierwerkzeuge, die Windows Phone Developer Tools, zur Verfügung:

  • Visual Studio 2010 Express for Windows Phone (C#)
  • Expression Blend 4 for Windows Phone
  • XNA Game Studio 4.0
  • und den Windows Phone Emulator

Selbstverständlich integrieren sich die WP7-Entwicklungstools auch in die “höheren” Versionen von Visual Studio 2010.

Die finale Version der Windows Phone Developer Tools (WPDT) ist seit 16.09.2010 als Download in verschiedenen Sprachen verfügbar (Web-Installer – Komplettdownload als ISO-File unten auf der Seite, ca. 500 MB).

Ein aktuelles Update für die Tools ist seit Januar 2011 erhältlich und sollte installiert werden. Es enthält zusätzliche Tools, aktualisierte Controls und ein neues Emulator-Image für das erste WP7-Update im Frühjahr 2011, welches u.a. Copy&Paste-Funktionen mit sich bringt.

Vor der Installation der Tools sind eventuelle Vorversionen (CTP, CTP Refresh, Beta) über die Systemsteuerung zu deinstallieren. Falls dabei Probleme auftreten sollten, helfen dieser oder dieser Blogeintrag ggf. weiter.

Obige Tools unterstützen ausschließlich C# als Programmiersprache. Für Visual Basic-Entwickler besteht die Möglichkeit, Unterstützung für VB.NET separat zu installieren (Download von Visual Basic for Windows Phone Developer Tools hier), um dann in Visual Studio 2010 Professional oder höher Silverlight-basierte Anwendungen in VB.NET zu entwickeln. (Vorläufig keine Unterstützung für Visual Studio Express, Microsoft Expression Blend, und XNA.)

Unter diesem Link finden sich Einsteigerinfos, Entwicklerguides und Samples.

→ zurück zum Inhaltsverzeichnis

Datenbanken

Das von Windows Mobile bzw. CE her bekannte SQL Compact steht unter WP7 vorerst nicht zur Verfügung. Datenspeicherung auf dem Gerät kann stattdessen mittels LINQ, XML, Isolated Storage oder Cloud-Diensten implementiert werden. Es existieren diverse alternative Implementierungen relationaler Datenbanken, deren Portierung auf WP7 nur eine Frage der Zeit ist. Hier findet sich z.B. ein Proof of Concept einer Realisierung von SQLite mit Silverlight auf WP7.

Von McObject kommt die Open-Source-Datenbank Perst. Ein weiteres Beispiel ist Ninja Database (Lite und Pro). Wintellect stellt Sterling auf CodePlex zur Verfügung.

→ zurück zum Inhaltsverzeichnis

Architektur & Guidelines

→ zurück zum Inhaltsverzeichnis

3rd-Party-Bibliotheken und –Produkte

→ zurück zum Inhaltsverzeichnis

Vermarktung

Windows Phone Marketplace

Der Windows Phone Marketplace (heute als Windows Marketplace for Mobile bekannt) ist der alleinige Vertriebsweg für WP7-Anwendungen. Einen Überblick gibt diese MIX-Session. Das Entwicklerportal hierfür ist der App Hub.

Marketplace ermöglicht es Entwicklern & ISVs, Anwendungen und Spiele lokal oder weltweit zu verbreiten. Es sind kostenlose, kostenpflichtige und werbefinanzierte Angebote möglich. Eigene Inhalte (z.B. digitale Publikationen) können angeboten, eigene Zahlungsmethoden für diese Inhalte innerhalb der Anwendung eingesetzt werden. Microsoft übernimmt lediglich Vertrieb und Abrechnung für die Anwendung selbst.

Windows Phone-Nutzer haben die Möglichkeit, über eine Try/Buy-Funktion kostenpflichtige Anwendungen aus dem Marketplace auszuprobieren, bevor sie sie erwerben. Für den Entwickler stellt Microsoft hierzu ein Trial-API bereit, mittels dessen im Code der Anwendung abgefragt werden kann, ob diese erworben wurde oder nur ausprobiert wird. Programmatisch können dann Einschränkungen der Funktionalität oder Nutzungsdauer vorgenommen werden. Eine separate Demo-Version ist nicht mehr erforderlich.

Die jährliche Registrierungsgebühr für Anbieter beträgt 99 USD. Für Studenten ist die Teilnahme über Microsofts DreamSpark-Programm kostenlos.

Nach erfolgreicher Registrierung können zum Zweck der Entwicklung und des Testens eine Anzahl von Geräten (3 pro Entwickler, für Studenten 1 pro Account) freigeschaltet werden, auf die dann ein direktes Deployment vom Desktop aus erfolgen kann. Es können über USB maximal 10 (Studenten: 3) Apps auf ein freigeschaltetes Gerät geladen werden. (Bei berechtigtem Bedarf können diese Limits mittels eines Support Requests über das Dashboard des App Hub erhöht werden.)

Fertige Produkte werden bei Microsoft zur Zertifizierung eingereicht, wobei diese nach technischen, rechtlichen und inhaltlichen Kriterien auf die Einhaltung der veröffentlichten Marketplace-Richtlinien geprüft werden.

Nach erfolgreichem Test kann ein Produkt dann im lokalen Katalog oder international veröffentlicht werden und steht dann für jeden WP7-Nutzer zum Erwerb bereit.

Es können im Rahmen der jährlichen Mitgliedsgebühr beliebig Tests kostenpflichtiger Anwendungen (die preisliche Untergrenze wird noch festgelegt) und bis zu fünf Tests kostenloser Anwendungen in Anspruch genommen werden. (Dazu zählen auch erfolgreiche Tests für Updates.) Jeder weitere Test einer kostenlosen Anwendung wird mit 19,99 US-Dollar berechnet. (Gilt auch für Studenten.)

Der Anbieter erhält vom Erlös seines Produktes (dessen Preis er selbst bestimmen kann) 70%, die jeweils zum Monatsende ausgezahlt werden, sofern die Summe der Einkünfte weltweit 200 USD übersteigt. Anderenfalls wird kumuliert, bis die Summe erreicht ist.

Einzelheiten zum Windows Phone Marketplace finden sich unter create.msdn.com. Zur Orientierung diese Anleitungen zur Anmeldung und zum Einreichen von Anwendungen (englisch).

Zur Bewerbung der eigenen Produkte können Direktlinks im Zune Client (PC) oder Marketplace Hub (Phone) verwendet werden, eine „Download for Windows Phone 7“-Grafik steht zur Verfügung. Einzelheiten dazu enthält dieser Blogeintrag.

Hinweis: Jeglicher client-seitiger Code kann mit ausreichendem Aufwand einem Reverse Engineering unterzogen werden. (So auch Windows Phone 7-Anwendungen.) Microsoft trifft geeignete Vorkehrungen, um dies möglichst zu verhindern. Dennoch wird Entwicklern geraten,

  • im Zweifelsfall wichtige Routinen als Webdienste auszulagern und somit die eigene „intellectual property“ besser zu schützen, sowie
  • ein Obfuscation-Tool wie z.B. RunTime Intelligence for Windows Phone von PreEmptive zu verwenden, um den eigenen Code vor Auslesen durch Reflection o.ä. zu schützen. (sehen Sie sich diesen Blogeintrag und diesen Webcast für eine Kurzeinführung an.)

→ zurück zum Inhaltsverzeichnis

Trainingsmaterial & Ressourcen

Dieser Abschnitt gibt einen Überblick zu Informationsquellen und Schulungsmöglichkeiten für Entwickler, die sich Kenntnisse in der Programmierung für Windows Phone 7 aneignen möchten. Er erhebt keinen Anspruch auf Vollständigkeit.

Bücher

Websites

Blogs & COMMUNITY

Beispiele & Verschiedenes

Videos & Webcasts

(Online-)Trainings

→ zurück zum Inhaltsverzeichnis

Support & Services

→ zurück zum Inhaltsverzeichnis

Inhalt dieser Seite

  • Plattform & Geräte
  • Anwendungsarten
  • Programmierwerkzeuge
  • Datenbanken
  • Architektur, Guidelines
  • 3rd Party Libraries
  • Vermarktung
  • Trainingsmaterial & Ressourcen
    • Bücher
    • Websites
    • Blogs & Community
    • Beispiele & Verschiedenes
    • Videos, Webcasts
    • (Online-)Trainings
  • Support & Services
  • Kontakt

 

Kontakt

Bei Fragen, Anregungen & Anmerkungen zu diesem Dokument, zur Anwendungsentwicklung für Windows Phone und zum Windows Phone Marketplace können Sie mit uns auf dieser Seite Kontakt aufnehmen. Wir freuen uns auf Ihre Meinung!