c# - XAML/C# API 中是否包含 Javascript API 中的所有功能?

标签 c# javascript xaml windows-8

对于 Windows 8 和 RT,JavaScript API 中的所有功能是否也在用于 Windows 8/RT 开发的 XAML/C# 中?我听说它补充了大量的 API 功能,但不是 100%。

最佳答案

是与否:

  1. 是的,大多数 API 范例都是相同的。
  2. 不,它们的名称不同。
  3. 不,它们的调用方式不同。
  4. 不,它们并非都以相同的方式运行(返回值等)。

由于 JS 主要在 HTML 之上运行,并且 JS 是单线程的,松散类型的,并且具有基于 lambdas 和闭包/作用域传递的传统,而不是传统的类构造,DOM 库和特性也不同于 C# + XAML。

所以问题归结为你在说什么:
如果您的问题是:
我可以通过特定于 MS 的库以我选择的语言访问 Windows RT 功能吗?
答案是肯定的。

如果您的问题是:
我可以在 JS/HTML 中做所有我在 C#/XAML 或 C++ 中能做的事情吗?
答案是否定的。

如果您的问题是:
"我对 X 语言中 WinRT 方法调用/API 足迹的了解是否可以直接翻译
(即:[CTRL+X|CTRL+C],CTRL+V/verbatim),到 Y 语言?

答案是否定的。

因此,充分利用这一点的关键是了解什么是 RT 规范的一部分,什么不是。
XBox360 Controller 支持,例如:
在 JS 中不受支持(至少在我上次检查规范时不支持——在开发版本期间)。

为什么不呢?
它不是 WinRT 支持的部分,因此,不是 RT 库的一部分,因此,无法从 JS RT 库访问。
但是在 C# 或 C++ 中使用 DirectInput/XInput,在 RT 应用程序中,您可以完全支持 360 Controller 。

另一方面,WinRT 库中实际支持的所有内容(文件访问、网络摄像头/音频访问、Promises 等)在库中都是可用的(可访问/以特定语言的方式运行),无论语言如何,并且在方法调用方面都以大致相同的速度运行(因为每种语言基本上都有一个包装器来访问 C++ 实现),但不一定是最终运行时(网络摄像头应用程序的 HTML5 canvas 应用程序可能比 C++ 应用程序慢……不足为奇)。

关于c# - XAML/C# API 中是否包含 Javascript API 中的所有功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400892/

相关文章:

c# - 清除 ViewBag?

c# - IValueConverter 删除 enum(int) 的基础值

Chrome 中的 Javascript 链接错误在所有其他浏览器中工作正常?

wpf - 如何更改 ContentPresenter 上的 FontFamily?

c# - 数据网格 WPF 中的计算列

wpf - 如何使用数据触发器更改 WPF 窗口背景?

c# - C++/CLI .Net telnet 库

c# - 使用 CloudTable 对象设置查询操作的超时

javascript - 使用 Javascript 和 CSS 移动 SVG 对象

javascript - 如何生成带边界的谷歌地图?