Avantages et inconvénients de l'utilisation de XAML / C # ou HTML5 / JavaScipt pour les applications Metro? [fermé]

19

Je me demandais simplement s'il y avait des avantages ou des inconvénients majeurs à utiliser XAML / C # ou HTML5 / JavaScript pour Metro Apps.

Ein Doofus
la source

Réponses:

18

En guise de contexte, j'ai créé l'application American Airlines Windows 8 en HTML5. Je dois dire que c'était fantastique.

Tout d'abord, déposez toutes vos idées sur HTML5 en ce qui concerne les applications mobiles. Dans Windows 8, JavaScript est une langue native de première classe. Vous avez accès à toutes les fonctionnalités matérielles d'une application XAML. Il existe également des modèles fantastiques intégrés à Visual Studio 2012 pour les applications WinJs.

WinJs n'est pas seulement une implémentation de la vision Web à moitié pensée. Microsoft montre enfin à JS le respect qu'il mérite.

Je suggère de vous familiariser avec la dernière et la meilleure version d'IE10. Honnêtement, c'est le cadre de base pour tous les trucs WinJs. C'est puissant et rapide! Voici un exemple de ce que vous pouvez en faire: http://www.cuttherope.ie/ .

En outre, voici un excellent endroit pour commencer avec WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

L'avenir s'annonce prometteur pour JS en tant que langue maternelle pour Windows.

Phillip Burch
la source
4
Premièrement, JavaScript est un langage de script et non une langue native. (Sauf si j'ai raté quelque chose et qu'il est maintenant directement compilé en code machine). Deuxièmement, ce n'est pas un langage de première classe dans Win8, car il est destiné à être utilisé pour développer des applications Metro, pas des applications (applications de bureau, jeux DirectX 11, etc.).
Den
3
«Cut the Rope» est un enfant affiche soigneusement sélectionné. Notez qu'il y a relativement peu de choses qui se produisent en même temps. S'il avait des centaines de sprites comme les jeux de bureau modernes ont tendance à le faire, il aurait du mal à montrer des FPS décents fonctionnant sur JS.
Den
2
Hey Den - vos commentaires ne semblent pas ajouter à la discussion. Êtes-vous en train de dire que parce qu'il n'est pas compilé en code machine qu'il ne serait pas bon d'utiliser pour les applications de métro? Pour votre deuxième commentaire sur Cut the Rope, vous n'écririez pas un "jeu de bureau moderne" avec beaucoup de FPS en javascript ou XAML, donc je pense que cela n'a rien à voir avec la discussion.
Phillip Burch
1
Phillip, vous avez dit "vous n'écririez pas un" jeu de bureau moderne "avec beaucoup de FPS en javascript ou XAML", est-il alors possible de faire un jeu moderne pour les appareils Windows 8? Et si c'est le cas, les jeux modernes seront-ils limités aux appareils Intel puisque les appareils ARM ne prennent en charge que WinRT?
Ein Doofus
1
@PhillipBurch: mon point est que "natif", "de première classe", "puissant et rapide" est un choix de mots trompeur. Et j'envisagerais très certainement d'utiliser C # + SharpDX / MonoGame (pas XAML bien sûr) pour développer des jeux haute performance pour Metro (ARM est une autre histoire cependant).
Den
4

Tous les deux. Parce que les deux sont adoptés par les développeurs (mais pas en même temps, ce que je veux dire, c'est que certains développeurs utilisent XAML / C #, d'autres utilisent HTML / JS). Pour ceux qui viennent d'un arrière-plan de développement d'applications Web, il est plus facile de passer à HTML / JS. Et pour ceux qui connaissent déjà XAML via WPF et Silverlight, il serait logique de transférer les compétences vers XAML + C #. Et en ce qui concerne les résultats, les deux technologies montrent de bons résultats. Donc, je suppose que les deux seraient tout aussi bons dans les années à venir.

Mamta D
la source
3

Les applications Metro construites à l'aide des API HTML5 / JS seront probablement classées comme "plus simples", par rapport à leurs homologues C # / XAML. Alors que le premier sera certainement capable de créer des applications fonctionnelles et bien conçues, il y aura sans aucun doute une limite aux capacités d'une application construite en HTML5. D'un autre côté, alors que C # pourrait être plus performant, c'est aussi plus compliqué. Une application HTML5 sera très facile à concevoir et à entretenir, comparativement.

Du moins, c'est ma meilleure estimation. Je n'ai pas encore d'expérience dans le développement d'applications Win8.

Zach Dziura
la source
3
Je ne pense pas que ce soit le cas. Ils ont tous deux accès exactement aux mêmes API dans WinRT.
Ian
2

Les deux vont fonctionner sur WinRT (alias version réduite de Windows 8 qui est utilisée sur l' appareil MS Surface ).

Cela dépendra totalement de la préférence des développeurs . Ainsi, les développeurs ayant une expérience HTML5 / JS seront également alimentés pour développer pour Windows 8.

Yusubov
la source
WinRT n'est PAS "également connu sous le nom de" Windows 8. Il s'agit d'une version simplifiée du système d'exploitation Windows 8 à part entière qui exécute uniquement l'interface utilisateur / applications metro et fonctionne sur les tablettes ARM.
treecoder
Oui, Windows 8 n'est pas un Win RT. Cependant, si c'est le sens que vous obtenez en lisant ma réponse, j'ai rendu cette déclaration plus explicite.
Yusubov
1

Pas un programmeur MS - Du point de vue des programmeurs, cela vaudrait la peine d'investir votre temps et vos efforts dans une plate-forme standard agnostique comme JS + HTML 5. Les connaissances que vous acquérez peuvent être réutilisées ailleurs.

Win 8 prend en charge JS en natif , il n'y a donc pas grand-chose que vous ne puissiez pas accomplir en l'utilisant.

JVXR
la source
0

Oui, dans la plupart des cas, JavaScript est une langue maternelle. Selon l'endroit où il s'exécute, sa compilation (style JIT) en code machine.

Par exemple, si vous utilisez le navigateur Chrome, le moteur V8 fait exactement ce qui est mentionné ci-dessus. Je crois comprendre qu'IE 10 fait la même chose, comme avec les autres navigateurs répandus qui prennent en charge la norme ECMAScript 262.

Entou, dans la plupart des cas, JavaScript n'est plus un langage interprété. Il s'agit d'un langage de programmation omniprésent, orienté objet, basé sur le prototype, côté client / serveur et omniprésent.

Kevin
la source