Vor- und Nachteile der Verwendung von XAML / C # oder HTML5 / JavaScipt für Metro-Apps? [geschlossen]

19

Ich habe mich nur gefragt, ob die Verwendung von XAML / C # oder HTML5 / JavaScript für Metro Apps wesentliche Vor- oder Nachteile hat.

Ein Doofus
quelle

Antworten:

18

Als kleinen Hintergrund habe ich die American Airlines Windows 8 App in HTML5 erstellt. Ich muss sagen, dass es fantastisch war.

Lassen Sie zunächst alle Ihre Ideen zu HTML5 fallen, die sich auf mobile Apps beziehen. In Windows 8 ist JavaScript eine erstklassige Muttersprache. Sie haben Zugriff auf alle Hardwarefunktionen, die eine XAML-App bieten würde. Es gibt auch fantastische Vorlagen, die in Visual Studio 2012 für WinJs-Anwendungen integriert sind.

WinJs ist nicht nur eine halbe Webview-Implementierung. Microsoft zeigt JS endlich den Respekt, den es verdient.

Ich würde vorschlagen, mit der neuesten und besten Version von IE10 auf dem Laufenden zu bleiben. Ehrlich gesagt, das ist das Kerngerüst für alle WinJs-Dinge. Es ist kraftvoll und schnell! Hier ist ein Beispiel dafür, was Sie damit machen können: http://www.cuttherope.ie/ .

Hier finden Sie auch einen guten Einstieg in WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

Für JS als Muttersprache für Windows sieht die Zukunft vielversprechend aus.

Phillip Burch
quelle
4
Erstens ist JavaScript eine Skriptsprache und keine Muttersprache. (Es sei denn, ich habe etwas verpasst und es ist jetzt direkt in Maschinencode kompiliert). Zweitens ist es keine erstklassige Sprache in Win8, da es zur Entwicklung von Metro-Apps verwendet werden soll, keine Apps (Desktop-Apps, DirectX 11-Spiele usw.).
Den
3
'Cut the Rope' ist ein sorgfältig ausgewähltes Aushängeschild. Beachten Sie, dass relativ wenige Dinge gleichzeitig passieren. Wenn es Hunderte von Sprites hätte, wie es moderne Desktop-Spiele tun, würde es schwierig sein, anständige FPS auf JS zu zeigen.
Den
2
Hey Den - deine Kommentare scheinen nicht zur Diskussion zu gehören. Wollen Sie damit sagen, dass es nicht gut für Metro-Apps wäre, weil es nicht in Maschinencode kompiliert wurde? Zu Ihrem zweiten Kommentar zu Cut the Rope würden Sie kein "modernes Desktop-Spiel" mit vielen FPS in Javascript oder XAML schreiben, daher denke ich, dass dies für die Diskussion irrelevant ist.
Phillip Burch
1
Phillip, Sie sagten, Sie würden kein "modernes Desktop-Spiel" mit vielen FPS in Javascript oder XAML schreiben. Ist es dann möglich, ein modernes Spiel für Windows 8-Geräte zu erstellen? Und wenn ja, werden moderne Spiele auf Intel-Geräte beschränkt sein, da ARM-Geräte nur WinRT unterstützen?
Ein Doofus
1
@PhillipBurch: Mein Punkt ist, dass "native", "erstklassig", "leistungsstark und schnell" eine irreführende Wortwahl ist. Und ich würde mit Sicherheit in Betracht ziehen, C # + SharpDX / MonoGame (natürlich nicht XAML) für die Entwicklung von Hochleistungsspielen für Metro zu verwenden (ARM ist jedoch eine andere Geschichte).
Den
4

Beide. Da beide von Entwicklern übernommen werden (obwohl nicht gleichzeitig, meine ich, dass einige Entwickler XAML / C # verwenden, andere HTML / JS). Für diejenigen, die aus einem Web-App-Entwickler-Hintergrund stammen, ist der Übergang zu HTML / JS einfacher. Und für diejenigen, die bereits mit XAML über WPF und Silverlight vertraut sind, ist es sinnvoll, die Kenntnisse auf XAML + C # zu übertragen. Bei den Ergebnissen zeigen beide Technologien gute Ergebnisse. Ich vermute also, dass beide in den kommenden Jahren gleich gut sein werden.

Mamta D
quelle
3

Unter Verwendung der HTML5 / JS-APIs erstellte Metro-Apps werden im Vergleich zu ihren C # / XAML-Gegenstücken wahrscheinlich als "einfacher" eingestuft. Während erstere sicherlich in der Lage sein werden, funktionierende, gut gestaltete Apps zu erstellen, wird es zweifellos eine Grenze für die Fähigkeiten einer in HTML5 erstellten App geben. Auf der anderen Seite ist C # zwar leistungsfähiger, aber auch komplizierter. Eine HTML5-App wird vergleichsweise einfach zu entwerfen und zu warten sein.

Zumindest ist das meine beste Schätzung. Ich habe (noch) keine Erfahrung mit der Entwicklung von Win8-Apps.

Zach Dziura
quelle
3
Ich denke nicht, dass dies der Fall ist. Sie haben beide Zugriff auf genau die gleichen APIs in WinRT.
Ian
2

Beide werden unter WinRT (auch bekannt als abgespeckte Version von Windows 8, die auf MS Surface-Geräten verwendet wird ) ausgeführt.

Es wird ganz von den Vorlieben der Entwickler abhängen . Entwickler mit HTML5 / JS-Erfahrung können daher gleichermaßen für Windows 8 entwickeln.

EL Yusubov
quelle
WinRT ist NICHT "auch bekannt als" Windows 8. Es ist eine abgespeckte Version des vollwertigen Windows 8-Betriebssystems, das nur die Metro-UI / Apps ausführt und auf ARM-basierten Tablets funktioniert.
Treecoder
Ja, Windows 8 ist kein Win RT. Wenn das jedoch die Bedeutung war, die Sie durch das Lesen meiner Antwort erhalten, habe ich diese Aussage expliziter gemacht.
EL Yusubov
1

Kein MS-Programmierer - Vom Standpunkt des Programmierers aus lohnt es sich, Zeit und Mühe in einen plattformunabhängigen, offenen Standard wie JS + HTML 5 zu investieren. Das erworbene Wissen kann an anderer Stelle weiterverwendet werden.

Win 8 unterstützt JS nativ , daher gibt es nicht viel, was Sie damit nicht erreichen können.

JVXR
quelle
0

Ja, in den meisten Fällen ist JavaScript eine Muttersprache. Je nachdem, wo es ausgeführt wird, wird es in Maschinencode kompiliert (JIT-Stil).

Wenn Sie zum Beispiel den Chrome-Browser ausführen, erledigt die V8-Engine genau das, was oben erwähnt wurde. Nach meinem Verständnis verhält sich der IE 10 genauso wie die anderen gängigen Browser, die den ECMAScript 262-Standard unterstützen.

In den meisten Fällen ist JavaScript keine interpretierte Sprache mehr. Es ist eine vollwertige, objektorientierte, prototypbasierte, Client / Server-seitige, allgegenwärtige Programmiersprache.

Kevin
quelle