使用HTML/CSS/JS编写的Metro应用与使用XAML/C#编写的Metro应用之间的区别

13
什么是使用Web开发技术编写的Metro应用与使用XAML/C#等语言编写的应用之间的区别?Microsoft Metro API是否提供JavaScript钩子,其中对于C#来说,这都是本机的?它们应该共同工作,还是开发人员可以选择哪条路线?
如果使用JS,则是否存在无法实现的某些功能(除了OpenGL硬件功能)?
我想知道构建广泛的Metro应用所必需的技术,这样当我到达某个点时,我不会被错误的技术所阻碍。

1
希望以下的内容能够帮助您做出决策:Windows 8: 我为什么选择XAML而不是HTML5的10大理由 [HTML,CSS和JavaScript的功能和区别(Windows Store应用程序)] (http://msdn.microsoft.com/en-us/library/windows/apps/hh465380.aspx) Metro应用程序:XAML/C#与HTML/Javascript的区别 - Amal Dev
1
你第一个链接的反驳观点是什么?该链接为http://codefoster.com/post/2012/05/23/Windows-8-Top-10-Reasons-why-I-choose-HTML5-over-XAML.aspx。 - Jeremy Foster
1个回答

17

微软已经大量投入工作,使Javascript成为WinRT开发中与C#同等的一级语言。通过语言映射,Javascript和C#都可以直接访问WinRT API。也就是说,每种语言都有特定于底层API的独特绑定。因此,两种语言都不比另一种“本地化”。

你应该能够使用任何一种语言编写等效的Metro应用程序。在高层次上,这确实取决于哪种语言/环境更适合您。

然而,还有一些差异应该考虑在内。首先,WinRT组件只能用C#或C++编写。Javascript只能消耗这些组件。如果打算创建可重用/可共享的组件,则应牢记这一点。

其次,尽管Windows Phone 8 SDK尚未发布,但有迹象表明,Windows Phone 8应用程序只能用C#编写。如果打算为平板电脑和手机创建类似的应用程序,这可能是一个严肃的考虑因素。

在Metro应用程序中,尚未进行大量基于性能的比较研究,因此很难说这是否会成为一个因素。

然后,还需要考虑第三方支持。C#/XAML已经很成熟,并拥有许多第三方支持。但同样,Javascript也有许多第三方库可用(例如jQuery),在很大程度上也可以引入并在Metro应用程序中使用。我会略微偏向于C#/XAML,但似乎两种语言的支持都很好。


谢谢您的详细回答 :). 您认为JS的支持会持续存在,还是只是吸引新开发人员的诱饵? - knownasilya
2
在我看来,随着时间的推移,WinRT的HTML/Javascript开发将会进一步发展并深入人心。随着越来越多的应用程序被编写,开发者的承诺也将促成这一点。对于微软而言,我也无法想象他们会采取任何形式的欺骗行为。他们需要攀登漫长的山丘来确立移动市场份额。这意味着他们需要吸引开发者进入他们的生态系统,并使他们留下来。 - Gambit
好观点Gambit。如果他们想要他们的Surface平板电脑和操作系统取得成功,他们肯定必须赶上来。看起来他们有很好的想法,但却没有跟进... - knownasilya
我对采用XAML/C#的路线持谨慎态度的唯一原因是它的平台依赖性。它非常依赖于Windows,几乎不可能使用相同的代码库为其他平台编写软件。 - knownasilya
2
就此而言,微软已经公开表示了它有多么喜欢JavaScript和Web堆栈以及它们的业务决策(不仅仅是Win8中的JS),这一点是值得注意的。Win8架构的强大之处在于可以使用多种语言堆栈。事实上,没有什么可以阻止后续添加其他投影来进一步扩展。 - Jeremy Foster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接