【问题标题】:WinRT and .NET clarification(s)WinRT 和 .NET 说明
【发布时间】:2012-03-19 13:29:26
【问题描述】:

我想澄清一些关于 WinRT 的观点以及 .NET 与它的关系。以下是一组我认为是正确的陈述......请纠正我的错误:

  1. WinRT 是用 C++ 编写的一个单独的 COM 公开本机面向对象 API,它本身并不是基于旧的基于 C 的 Win32 构建的:它是完全独立的。
  2. WinRT 至少现在只能用于 Windows 8 的 Metro 部分,而 Win32 不能用于 Metro 应用程序。 Win8 中的应用程序要么是桌面应用程序,要么是 Metro 应用程序,并且应用程序不能同时使用这两种 API。这是其中之一。
  3. 传统的桌面/服务器 .NET(基于 Win32 构建)将继续正常运行,但有一个基于 WinRT 的新精简 .NET 框架(如 Compact Framework/客户端配置文件或 Silverlight)用于 Metro世界。这就是 C# 和 VB.NET 在 WinRT 世界中的运行方式:它与为桌面/服务器安装的 .NET 框架不同。 UI 是使用 XAML 派生完成的。
  4. Metro 应用程序也可以使用本机 C++ 构建,同样使用 XAML 作为 UI。 C++/CLI 呢?其他不太流行的 .NET 语言呢?
  5. Metro 应用程序也可以使用 HTML5/CSS3/Javascript 构建。我认为 Metro 系统有一个新的渲染和执行引擎来运行这些应用程序:我的理解是这些不能在像 IE 这样的浏览器中执行,所以它们是应用程序,而不是网页。
  6. Metro IE 不会运行插件,因此 Metro 世界中没有 Silverlight。
  7. 基于 ARM 的设备只能在 Metro 模式下运行 Win8。

【问题讨论】:

标签: .net microsoft-metro windows-runtime


【解决方案1】:
  1. 几乎正确,WinRT 在内部仍然使用一些 Win32 调用,但一些 API 调用是新的并且是从头开始编写的。

  2. WinRT 只能在 Metro 中使用,但 Win32 调用的子集仍可在 Metro 中使用。

  3. 是的。 XAML 部分现在使用 WinRT 实现。

  4. Metro 不支持 C++/CLI。目前它只是 Metro 上的 C#/VB.Net。

  5. 是的。

  6. 正确。

  7. 不,虽然 ARM 会有桌面,但仅限于 MS Office、IE 和 Explorer。

编辑

根据下面的cmets更新。

  1. 可从桌面使用的 WinRT API 子集。

  2. 渲染和 JavaScript 引擎与 IE 10 中使用的相同。但应用程序本身不会在 Internet Explorer 中单独运行

【讨论】:

  • 对于问题二,我认为@iaimtomibehave 不正确。如果您查看 Jeff Richter 的博文 wintellect.com/CS/blogs/jeffreyr/archive/2011/09/20/…,您会发现只有 Visual Studio 会阻止在 .NET 应用程序中使用 WinRT。
  • 有趣。但是,这样的东西在现实世界中的用途是什么?
  • 5 实际上是“假” - HTML5/CSS/Javascript 应用程序使用 Trident 渲染引擎和 Chakra javascript 引擎。它与 Internet Explorer 使用的渲染和 JS 引擎相同。 @btlog:有一部分可以从桌面调用的 winrt API,我不知道为什么不能从 C# 调用这些 API
  • @LarryOsterman 我将 5 理解为无法从 IE 运行用 HTML5/JS 编写的 Metro 应用程序。我会用你的 cmets 更新答案。
  • @iamtomisbehave:有道理。我认为这是#5 的两个部分,第一个是关于渲染引擎,第二个是关于执行环境。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多