¿Ventajas y desventajas de usar XAML / C # o HTML5 / JavaScipt para aplicaciones Metro? [cerrado]

19

Me preguntaba si existen ventajas o desventajas importantes al usar XAML / C # o HTML5 / JavaScript para Metro Apps.

Ein Doofus
fuente

Respuestas:

18

Como un poco de historia, creé la aplicación Windows 8 de American Airlines en HTML5. Tengo que decir que fue fantástico.

Primero, descarte todas sus ideas de HTML5 en relación con las aplicaciones móviles. En Windows 8, JavaScript es un idioma nativo de primera clase. Tiene acceso a todas las funciones de hardware que tendría una aplicación XAML. También hay plantillas fantásticas integradas en Visual Studio 2012 para aplicaciones WinJs.

WinJs no es solo una implementación de vista web a medio pensar. Microsoft finalmente muestra a JS el respeto que merece.

Sugeriría ponerse al día con lo último y lo mejor de IE10. Honestamente, ese es el marco central para todas las cosas de WinJs. ¡Es potente y rápido! Aquí hay un ejemplo de lo que puede hacer con él: http://www.cuttherope.ie/ .

Además, aquí hay un gran lugar para comenzar con WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

El futuro parece brillante para JS como idioma nativo para Windows.

Phillip Burch
fuente
44
En primer lugar, JavaScript es un lenguaje de script, no un idioma nativo. (A menos que me haya perdido algo y ahora se compila directamente en el código de máquina). En segundo lugar, no es un lenguaje de primera clase en Win8, ya que está destinado a ser desarrollado para desarrollar aplicaciones de Metro, no ninguna aplicación (aplicaciones de escritorio, juegos DirectX 11, etc.).
Den
3
'Cut the Rope' es un póster cuidadosamente seleccionado. Tenga en cuenta que tiene una cantidad relativamente pequeña de cosas que suceden al mismo tiempo. Si tuviera cientos de sprites como tienden los juegos de escritorio modernos, tendría dificultades para mostrar FPS decentes que se ejecutan en JS.
Den
2
Hola Den, tus comentarios no parecen agregarse a la discusión. ¿Estás diciendo eso porque no está compilado en código de máquina que no sería bueno usar para aplicaciones de metro? Para su segundo comentario sobre Cut the Rope, no escribiría un "juego de escritorio moderno" con muchos FPS en javascript o XAML, así que creo que eso es irrelevante para la discusión.
Phillip Burch
1
Phillip, dijiste "no escribirías un" juego de escritorio moderno "con muchos FPS en javascript o XAML", ¿es posible hacer un juego moderno para dispositivos con Windows 8? Y si es así, ¿los juegos modernos se limitarán a los dispositivos Intel ya que los dispositivos ARM solo son compatibles con WinRT?
Ein Doofus
1
@PhillipBurch: mi punto es que "nativo", "primera clase", "poderoso y rápido" es una elección engañosa de palabras. Y sin duda consideraría usar C # + SharpDX / MonoGame (no XAML, por supuesto) para desarrollar juegos de alto rendimiento para Metro (ARM es una historia diferente).
Den
4

Ambos. Debido a que ambos están siendo adoptados por los desarrolladores (aunque no al mismo tiempo, lo que quiero decir es que mientras algunos desarrolladores usan XAML / C #, otros usan HTML / JS). Para aquellos que provienen de un fondo de desarrollo de aplicaciones web, es más fácil la transición a HTML / JS. Y para aquellos que ya están familiarizados con XAML a través de WPF y Silverlight, tendría sentido transferir las habilidades a XAML + C #. Y en lo que respecta a los resultados, ambas tecnologías están mostrando buenos resultados. Así que supongo que ambos serían igualmente buenos en los años venideros.

Mamta D
fuente
3

Las aplicaciones de Metro creadas con las API HTML5 / JS probablemente se clasificarán como "más simples", en comparación con sus contrapartes C # / XAML. Si bien la primera será capaz de crear aplicaciones funcionales y bien diseñadas, sin duda habrá un límite para las capacidades de una aplicación construida en HTML5. Por otro lado, aunque C # podría ser más capaz, también es más complicado. Una aplicación HTML5 será muy fácil de diseñar y mantener, comparativamente.

Al menos, esa es mi mejor estimación estimada. No tengo experiencia desarrollando aplicaciones Win8 (todavía).

Zach Dziura
fuente
3
No creo que este sea el caso. Ambos tienen acceso a exactamente las mismas API en WinRT.
Ian
2

Ambos se ejecutarán en WinRT (también conocida como versión recortada de Windows 8 que se usa en el dispositivo MS Surface ).

Dependerá totalmente de la preferencia de los desarrolladores . Por lo tanto, los desarrolladores con experiencia en HTML5 / JS estarán igualmente capacitados para desarrollar Windows 8.

Yusubov
fuente
WinRT NO es "también conocido como" Windows 8. Es una versión simplificada del sistema operativo Windows 8 completo que solo ejecuta las aplicaciones ui de metro y funciona en tabletas basadas en ARM.
treecoder
Sí, Windows 8 no es un Win RT. Sin embargo, si ese fue el significado que obtienes al leer mi respuesta, he hecho esa declaración más explícita.
Yusubov
1

No es un programador de MS: desde el punto de vista de los programadores, valdría la pena invertir su tiempo y esfuerzo en un estándar abierto y agnóstico de plataforma como JS + HTML 5. El conocimiento que obtiene puede reutilizarse en otros lugares.

Win 8 es compatible con JS de forma nativa , por lo que no habría mucho que no pueda lograr con él.

JVXR
fuente
0

Sí, en la mayoría de los casos, JavaScript es un idioma nativo. Dependiendo de dónde se está ejecutando, se compila (estilo JIT) en código máquina.

Por ejemplo, si está ejecutando el navegador Chrome, el motor V8 hace exactamente lo que se mencionó anteriormente. Tengo entendido que IE 10 está haciendo lo mismo, como con los otros navegadores frecuentes que admiten el estándar ECMAScript 262.

Entou, en la mayoría de los casos, JavaScript ya no es un lenguaje interpretado. Es un lenguaje de programación completo, orientado a objetos, basado en prototipos, cliente / servidor, ubicuo.

Kevin
fuente