Montag, 9. August 2010

Grundsätzliches zur Programmierung für Windows Phone 7

 

Windows Phone 7 ist ein kompletter Neustart für Microsoft im Mobile Markt. Es wird 2 "Plattformen" zur Programmierung unterstützen. Silverlight and XNA. Dies bedeutet für einen Entwickler, der heute für Windows Mobile programmiert doch einen gewissen Wandel.

Silverlight—Windows Presentation Foundation (WPF)—kennen Web Entwickler bereits für die Entwicklung von Web Anwendungen, wo Traditionelle Controls, VektorGraphiken, Animierte Medien und Data Binding genutzt werden können, um auf verschiedenen Plattformen und Browsern dargestellt werden. Windows Phone 7 bringt Silverlight zu den Mobile Devices.

XNA ist die Spiele Plattform von Microsoft, welche 2D Sprite basierte und 3D Grafiken mit der klassischen Game Loop Architektur unterstützt. XNA kennt man heute vor allem für die Entwicklung von Spielen für die Xbox 360 Konsole. Es sind aber auch Spiele für den Zune HD und den PC möglich.

Alle Programmen sind in .NET managed code geschrieben. Zurzeit ist nur C# als Programmiersprache unterstützt. Zur Entwicklung benötige ich das Gratis erhältliche Microsoft Visual Studio 2010 Express für Windows Phone, welches XNA Game Studio 4.0 und den Telefon Emulator enthält. Wenn man bereits Visual Studio 2010 benutzt, integriert sich dieses natürlich in die IDE.

Für die Entwicklung mit Silverlight benutze ich Microsoft Expression Blend.

Silverlight und XNA für Windows Phone 7 teilen sich gewisse Bibliotheken, und ich kann gewisse XNA Bibliotheken in Silverlight Applikationen verwenden und umgekehrt. Zurzeit ist es nicht möglich, "Visuals" von den beiden Plattformen zu mixen. Bevor ich also mit dem Entwicklungsprojekt starte, muss ich mich entscheiden, ob es eine XNA oder Silverlight Applikation werden soll.

Generell wird man für "klassische" Applikationen wohl Silverlight wählen. Für die Definition des Layouts des User Interface benutzen diese Applikationen XAML (Extensible Application Markup Language). Code-behind Files können auch gewisse Initialisation und Logik übernehmen, sind aber wohl eher als Event Handler der Controls gedacht. Silverlight für Windows Phone 7 ist eine Mobile Version von Silverlight 3, welche um Elemente erweitert ist, welche es nur auf einem Phone braucht. Natürlich ist sie aber auch um die Elemente erleichtert, welche es nicht auf einem Telefon braucht.

XNA ist in erster Linie gedacht für "High-performance games". Für 2D Spiele definiere ich Sprites und Hintergründe basierend auf Bitmaps, für 3D Spiele definiere ich die Modelle in 3D Space. Die Bewegung von grafischen Objekten und das Abfragen von Benutzer Eingaben wird vom "built-in XNA game loop" übernommen.

Die Unterschiede was für welche Art von Applikation ist sind eigentlich klar, aber sind nicht "zwingend". Natürlich kann ich eine klassische Applikation in XNA schreiben und eine Spiel in Silverlight. (Mit allen Vor und Nachteilen, doch dazu detaillierter in einem späteren Post.)

Zum Schluss noch ein Hinweis, falls der eine oder andere mehr zum Thema "Writing a Windows Phone 7 Application in Silverlight" wissen will. Demnächst begibt sich Microsoft Schweiz auf eine "Hands-On-Lab" Tour in den Städten Bern, Basel und Genf. Die Teilnahme ist Kostenlos. Anmeldung und Details findet Ihr hier:

MSDN Hands-on Lab "Writing a Windows Phone 7 Application in Silverlight"

Quellen für diesen Blogpost:

http://developer.windowsphone.com/

Preview des Buches von Charles Petzold "Programming Windows Phone 7" (special excerpt 2)

Keine Kommentare:

Kommentar veröffentlichen