Für die Entwicklung einer App für Windows 8 kann man C# und XAML nehmen (bzw. auch VB), C++ und XAML, C++ und DirectX (primär Spiele) und HTML5 / JavaScript. Doch die App Plattform ist nicht nur auf Windows 8 beschränkt, so das man sich die Frage stellen darf, mit welcher Technologie erreicht man eigentlich die meisten Plattformen? Dazu habe ich einfach mal die Plattform und die zur Verfügung stehenden Oberflächenframeworks in einer Tabelle veranschaulicht. Es gibt natürlich noch andere Möglichkeiten Anwendungen zu entwickeln, ich habe mal die gängigsten von Microsoft aufgezählt.

Übersicht der Microsoft Plattformen

PlattformPresentation
Windows 8 (App) XAML
  DirectX
  HTML5
Windows Phone 7.5 XAML (Silverlight)
  XNA
XBOX 360 DirectX
  XNA
Windows 7 und 8 (Desktop) XAML (Silverlight, WPF)
  Windows Forms
  MFC
  DirectX
  XNA
  HTML5

Spiele vs der Rest

Wirklich vielfältig. Vielleicht hilft es noch die Art der App einzugrenzen. Hier unterscheide ich einfach mal nach Spielen und den Rest

App TypePlattformPresentation
Spiele Windows 7 und 8 (Desktop) DirectX, XNA, HTML5
  Windows 8 DirectX, HTML5
  XBOX 360 DirectX, XNA
  Windows Phone 7.5 Silverlight, XNA, HTML5
  Windows Phone 8 DirectX, HTML5
Alles andere Windows 7 und 8 (Desktop) Silverlight, WPF, MFC, Windows Forms, DirectX, XNA, HTML5
  Windows 8 XAML, DirectX, HTML5
  XBOX 360 DirectX, XNA
  Windows Phone 7.5 Silverlight, XNA, HTML5
  Windows Phone 8 XAML, DirectX, HTML5

Nüchtern betrachtet

Nun mache ich es mir noch einfacher. Ich betrachte Spiele erstmal gar nicht mehr, nehme DirectX und XNA raus. Des Weiteren entferne ich aus der Tabelle die Plattform XBOX. Dann fasse ich Silverlight, WPF und XAML zu XAML zusammen. Die Tabelle sieht nun so aus:

Ich weiß das man mit DirectX auch andere Anwendungen als Spiele schreiben kann. Ich wende hier nur die bekannte 80:20 Regel an. Und ja mir ist auch bekannt dass man mit C++ super Cross-Plattform entwickeln kann.

PlattformPresentation
Windows 7 und 8 (Desktop) XAML, MFC, Windows Forms, HTML5
Windows 8 XAML, HTML5
Windows Phone 7.5 XAML, HTML5
Windows Phone 8 XAML, HTML5

HTML5 - Browser, nativ und WebView

HTML5 scheint eine gute Option zu sein. Überall vertreten. Doch bei HTML5 gibt es eine Sache zu beachten, die Art des Hostings. Ich nehme nun den üblichen Host auf der Plattform hinzu um so mehr Einsicht zu bekommen:

PlattformHTML5 Hosted
Windows 7 und 8 (Desktop) Browser, WebView
Windows 8 Nativ
Windows Phone 7.5 WebView
Windows Phone 8 WebView

WebView bedeutet das eine native Anwendung ein Webcontrol hosted und dort die Single Page App reinlädt. Das wird meist als WebView bezeichnet.

Andere Plattformen

Nun doch XAML? Weiß nicht, hängt wirklich von Euch ab. Zumal man sich noch die anderen gängigen App Plattformen am Markt betrachten sollte:

PlattformTechnology
iOS Object C, HTML5 (WebView)
Android Java, HTML5 (WebView)
Windows Phone 7.5 Silverlight, HTML5 (WebView)

Fazit

Eine Vielzahl Möglichkeiten und die Erkenntnis das die Eierlegendewollmilchsau ein Mythos ist. Die ein und alles dominierende Technologie mit der man mit möglichst wenig Aufwand viele Plattformen erreicht. Klar, es gibt Hilfsmittel, wie z.B. Phonegap um HTML5 Anwendungen für verschiedene Plattformen zu paketieren. Aber man hat dann nicht die volle Vielfalt der Plattform sondern eben nur den gemeinsamen Nenner. Was sich vielleicht doch in den gesamten Tabellen herauskristalisiert, wenn man nur die Microsoft Plattform betrachtet, das XAML und C# eine gute Option sind um Anwendungen zu entwickeln. Ich möchte nochmals anmerken, das dieser Blogpost meine rein persönliche Meinung darstellt.