如果有人可以在 JavaScript(使用 HTML)和 C#(使用 XAML)之间进行选择来编写 Windows 8 应用程序,他/她应该更喜欢哪一个?它是否提供任何性能优势,或者 C# 是否对 Windows8 API 和系统调用具有更大的可访问性?
2 回答
恐怕对OP有些困惑。我们谈论的是为 Windows 8 开发应用程序。您可以使用多种语言堆栈来面向 Windows 8。您可以使用 XAML/C#、XAML/C++、DirectX/C++ 或 HTML/JavaScript。问题是关于两个最流行的堆栈(XAML/C# 和 HTML/JavaScript)中的哪一个具有更好的性能和更好地访问 Windows API。
我是 Microsoft 的开发人员宣传员,这是我收到的最常见问题。我在codefoster.com/Which-Windows-8-Language-Stack-Should-I-Choose有一篇文章涉及部分问题,但不是全部。
首先,关于对 Windows API (WinRT) 的访问,所有语言堆栈都是相同的。整个 WinRT 对象空间实际上被投影到不同的语言中,因此在任何语言中,您都可以调用 Windoww API,它们总是以“Windows.”开头。
投影也遵循投影到的每种语言的约定,因此在 C# 中您可以调用 Windows.UI.Popups.MessageDialog("Hello World").ShowAsync(),而在 JavaScript 中您可以调用 Windows。 UI.Popups.MessageDialog("Hello World").showAsync()。同样,每种语言都使用自己的约定来处理异步。在 C# 中,您将使用 async/await 模式,但在 JavaScript 中,您将使用 Promise 模式。
其次,关于性能问题。由于语言之间的自然和剧烈差异,语言堆栈之间将存在差异。要知道的重要一点是,对于所有内置控件和场景,所有语言堆栈都旨在满足最低性能阈值。老实说,我认为您无需担心任何语言堆栈在性能方面会落后,除非您有一些非常有趣的事情正在发生,在这种情况下您应该具体说明它是什么。
每个语言堆栈也有自己的优点和缺点。如果您使用的是 C#,那么您有一套很好的 .NET 框架,很多人都非常熟悉。它也是一种设计精良且富有表现力的语言。此外,XAML 是一种非常强大的 UI 语言。如果您使用的是 JavaScript,那么您的代码与广大互联网的其余部分相同,并且可以共享大量代码。你可以找到 JavaScript 库来做任何你想做的事情,你可以在你的 Windows 8 应用程序中使用其中的任何一个。如果您使用 C++,那么您可以访问现有的 C 和 C++ 组件并访问 DirectX 以制作 3D 应用程序。
请记住,您可以使用 C# 或 C++ 创建混合应用程序来创建 WinRT 组件,然后您可以在任何语言堆栈中使用这些组件 - 包括 JavaScript!因此,如果您了解 C# 并想用 C# 编写业务逻辑,则可以这样做,然后在 JavaScript 应用程序中使用该逻辑。
最后,我认为决定选择哪个堆栈的两个最大因素是 1)您已经最熟练的堆栈和 2)您喜欢使用的堆栈。这些很重要,可能会带你完成一个你本来会放弃的项目。
我希望这有助于您做出决定。如果您在制作 Windows 8 应用程序时需要任何帮助,请访问codefoster.com。
您正在将脚本语言与本机(编译)语言进行比较。
与 C# 相比,JS 对系统的访问非常有限。但是话又说回来,根据您要应用程序执行的操作,它可能是最佳选择。