在Metro应用程序中使用XAML / C#或HTML5 / JavaScipt的优缺点?[关闭]


19

我只是想知道将XAML / C#或HTML5 / JavaScript用于Metro Apps是否有主要优点或缺点。

Answers:


18

作为一点背景,我用HTML5构建了美国航空Windows 8应用程序。我不得不说这太棒了。

首先,放弃所有与移动应用有关的HTML5想法。在Windows 8中,JavaScript是一流的本地语言。您可以访问XAML应用程序将具有的所有硬件功能。Visual Studio 2012中还内置了适用于WinJs应用程序的出色模板。

WinJs 只是Webview 实现的一半。微软终于向JS表示了应有的尊重。

我建议尽快了解IE10中的最新功能。老实说,这是所有WinJs的核心框架。它强大而快速!这是您可以使用它的示例:http : //www.cuttherope.ie/

另外,这是开始使用WinJs的好地方:http : //msdn.microsoft.com/zh-cn/library/windows/apps/br211385.aspx

作为Windows的本地语言,JS的前景一片光明。


4
首先,JavaScript是一种脚本语言,而不是母语。(除非我错过了一些东西,现在它已直接编译成机器代码)。其次,它不是Win8中的一流语言,因为它旨在用于开发Metro应用程序,而不是任何应用程序(桌面应用程序,DirectX 11游戏等)的开发。
2012年

3
“剪绳子”是一个精心挑选的海报儿童。请注意,它同时发生的事情相对较少。如果它具有现代桌面游戏所趋向的数百个精灵,它将很难显示出在JS上运行良好的FPS。
2012年

2
嗨,登-您的评论似乎没有添加到讨论中。您是在说,因为它没有被编译成机器代码,所以对于Metro应用程序不好用吗?关于您的《割绳子》的第二条评论,您不会用javascript或XAML编写具有很多FPS的“现代桌面游戏”,因此,我认为这与讨论无关。
菲利普·伯奇

1
菲利普(Phillip),您说过“您不会用JavaScript或XAML编写具有很多FPS的“现代桌面游戏”,”那么是否有可能为Windows 8设备制作现代游戏?如果是这样,由于ARM设备仅支持WinRT,现代游戏是否将仅限于Intel设备?
Ein Doofus 2012年

1
@PhillipBurch:我的意思是,“母语”,“头等舱”,“强大而快速”是一个令人误解的词语选择。而且,我肯定会考虑使用C#+ SharpDX / MonoGame(当然不是XAML)来开发Metro的高性能游戏(尽管ARM是另外一回事)。
2012年

4

都。因为两者都被开发人员采用(尽管不是同时使用,但我的意思是,有些开发人员使用XAML / C#,而另一些开发人员则使用HTML / JS)。对于那些来自Web应用程序开发背景的人来说,过渡到HTML / JS更容易。对于那些通过WPF和Silverlight熟悉XAML的领导者来说,将技能转移到XAML + C#上将是有意义的。就结果而言,这两种技术都显示出良好的效果。因此,我的猜测是,未来几年两者都将同样出色。


3

与C#/ XAML相比,使用HTML5 / JS API构建的Metro Apps可能会被归类为“更简单”。尽管前者肯定能够创建功能良好且设计良好的应用程序,但毫无疑问,使用HTML5构建的应用程序的功能将受到限制。另一方面,尽管C#可能更强大,但也更加复杂。相对而言,HTML5应用将非常易于设计和维护。

至少,这是我最好的估计。我没有开发Win8应用的经验(尚未)。


3
我认为情况并非如此。他们都可以访问WinRT中完全相同的API。
伊恩2012年

2

两者都将在WinRT(又称为MS Surface设备上使用的Windows 8精简版)上运行。

这将完全取决于开发人员的偏好。因此,具有HTML5 / JS经验的开发人员将同样有能力为Window 8开发。


WinRT不是Windows 8的“别名”。它是成熟的Windows 8 OS的精简版本,仅运行Metro ui / apps并在基于ARM的平板电脑上运行。
treecoder

是的,Windows 8不是Win RT。但是,如果那是您从阅读我的回答中获得的含义,那么我已使该声明更为明确。
Yusubov

1

不是MS程序员-从程序员的角度出发,值得花时间和精力在与JS + HTML 5等平台无关的开放标准上。您所获得的知识可以在其他地方重复使用。

Win 8 本机支持JS ,因此使用它不会有太多无法完成的事情。


0

是的,在大多数情况下,JavaScript是一种本地语言。根据运行的位置,将其(JIT样式)编译为机器代码。

例如,如果您正在运行Chrome浏览器,则V8引擎会执行上述操作。据我了解,IE 10与支持ECMAScript 262标准的其他流行浏览器一样。

Entou,在大多数情况下,JavaScript不再是解释性语言。它是一种成熟的,面向对象的,基于原型的,客户端/服务器端无处不在的编程语言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.