【问题标题】:WinJs in the browser?浏览器中的WinJs?
【发布时间】:2011-09-15 21:13:20
【问题描述】:

在试用了新的 Visual Studio 11 预览版之后,我认为最有趣的问题是如何让我的新基于 javascript 的应用程序在浏览器中也能以最小的更改运行?那可能吗?我想支持 javascript 的想法是为了更好的跨平台应用程序,对吗?

我知道一些 winJs 代码调用 WinRT,但我们也可以在基于 Web 的应用程序上使用一些 WinJS 代码吗?

【问题讨论】:

  • 我认为这是可能的,您必须检查库并伪造 winrt 调用,将所有 ms- 前缀替换为浏览器特定的前缀...从中我想我们会得到一些有效的东西,但只在现代浏览器上。我个人对让语义缩放控件在常规网络中工作非常感兴趣 =)
  • 除了“假”WinRT 调用之外,还有更多工作要做。您必须“替换”您使用的那些。但绝对可行,因为您可以从最初使用的内容开始。

标签: windows-8 visual-studio-2012 winjs


【解决方案1】:

我在这里进行构建,并且基于 Microsoft 人员所说的 WinJS 确实调用了 Windows RT。加上他们的一些东西是基于一些供应商前缀 css 的东西(即仅限 IE10)。所以简短的回答是否定的,你不能。

更多的想法。 需要明确的是,从现有的 Html/Js 应用程序到 Win8 应该可以工作。 Win8 App事件的一些注意事项,外观和感觉是一些需要关注的问题。但是核心应该可以工作。

最初的问题与“我有一个 IE9 HTML5/Js 应用程序,我想在任何地方运行(包括 IE6、FF2),这可能吗?”并没有什么不同。他们的库中有很多功能,以及利用新的 CSS3 功能(-ms-grid、-ms-float、3d 转换)。据我所知,他们所有的手势识别功能都在 winRT 中,为了“快速流畅”的响应能力,在 Metro 环境之外您都无法真正使用。

在我看来,win8 Metro 风格的应用之所以被支持,并不是因为跨平台应用,而是为了增加开发者的基础,看谁可以编写 win8 应用。

【讨论】:

  • 另一方面,你不需要使用 WinJS,尽管它在实践中很有帮助。
  • 那么您认为 C# 会继续成为主流吗? javascript 植入最终会像 J# 那样吗?
  • @CD 我认为 C# 最初将保持主流。对许多人来说,C# 更简单、更熟悉。但是,Javascript 未来可能更有可能成为 win8 Metro 应用程序的主要语言。有什么更好的方法来学习 Javascript,然后通过制作应用程序并致富?如果您不致富(大多数人不会),您仍然可以获得如何有效使用 html5/css3 和 javascript 的额外好处。
  • 如果我们可以使用 WinJS 创建一个与新的 Outlook.com 或 Skydrive.com 一样运行的网站,那就太好了。
【解决方案2】:

情况似乎发生了变化。 WinJS 已在所有平台上可用...您可以在浏览器中试用:try.buildwinjs.com

WinJS 现在实际上是开源的:blog, github

使用这个强大的 Windows 开发框架在 Windows 以外的各种浏览器和设备(包括 Chrome、Firefox、Android 和 iOS)上构建高质量的网络应用程序。

【讨论】:

【解决方案3】:

是的,这是通过 lightswitch html 组件完成的。

您可以下载并安装 lightswitch 以查看使用 winjs 跨浏览器的示例。它使用承诺对象等。

【讨论】:

  • 澄清一下——虽然LightSwitch确实支持跨平台的创建。跨浏览器的移动 HTML 客户端,并利用 WinJS 的子集,它似乎没有使用任何 WinRT 特定的 API 调用(特定于 Win8)。
【解决方案4】:

有一个可以在浏览器中运行的 winjs 替代方案:http://www.bluesky.io/ 不过还没有尝试过。

【讨论】:

    【解决方案5】:

    如果您正在编写游戏,这将是可能的,您可以轻松地将它们移植到 Metro 应用程序和 Web 应用程序之间,而无需更改代码字母。这是因为您并没有真正使用 WinJS 库。

    对于 Web 应用程序,我不建议这样做,因为这意味着您无法使用 WinRT 框架。这也意味着你失去了很多功能。例如搜索和分享魅力。这些本质上是用于 Metro 应用程序,但在 Web 应用程序中没有用。

    WinRT 框架还针对性能进行了优化。因此,建议您使用它而不是像 jQuery 或其他框架这样的框架。可能会慢一些。

    您必须问自己的另一个问题:如果您可以为网络编写它,为什么要将其变成 Metro 应用程序?那会有什么价值呢?

    我想说的最后一点是:Web 应用程序(目前)旨在在线工作。使用 Metro 应用程序时,您需要记住该应用程序也需要离线工作。这意味着额外的抽象。

    就像安德烈在他的回答中提到的那样。 HTML5/JS 只提供了一种额外的方式来开发应用程序。微软只是让更多人可以用他们熟悉的语言编写应用程序。

    【讨论】:

      猜你喜欢
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2012-02-13
      • 2020-07-15
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多