我想澄清一些有关WinRT的观点,以及.NET与之相对应的地方。以下是我认为是正确的一组陈述……纠正我错的地方:

  • WinRT是用C++编写的单独的COM公开 native 面向对象的API,它本身并不是在基于C的旧Win32之上构建的:它是完全独立的。
  • WinRT至少现在只能用于Windows 8的Metro部分,而Win32不能用于Metro应用程序。 Win8中的应用程序将是台式机或Metro,并且应用程序不能同时使用这两个API。是一个或另一个。
  • 传统的台式机/服务器.NET(基于Win32构建)将继续正常运行,但是在WinRT上构建了一个新的缩减版本.NET Framework(例如Compact Framework/客户端配置文件或Silverlight),可在Metro世界中使用。这就是C#和VB.NET在WinRT世界中运行的方式:它不是为台式机/服务器安装的.NET框架。 UI是使用XAML派生工具完成的。
  • Metro应用程序也可以使用 native C++构建,再次使用XAML for UI。 C++/CLI呢?那其他不那么流行的.NET语言呢?
  • Metro应用程序也可以使用HTML5/CSS3/Javascript构建。我认为Metro系统具有内置的渲染和执行引擎来运行这些应用程序:我的理解是,这些不能在IE之类的浏览器中执行,因此它们是应用程序,而不是网页。
  • Metro IE将不会运行插件,因此Metro世界中没有Silverlight。
  • 基于ARM的设备将仅在Metro模式下运行Win8。
  • 最佳答案

  • 几乎正确,WinRT在内部仍然使用一些Win32调用,但是一些API调用是新的,并且是从头开始编写的。
  • WinRT只能在Metro中使用,但Win32调用的子集在Metro中仍然可用。
  • 是的。 XAML部分现在使用WinRT实现。
  • Metro不支持
  • C++/CLI。现在,它只是Metro上的C#/VB.Net。
  • 是的。
  • 正确。
  • 否,尽管ARM将有一个台式机,但仅限于MS Office,IE和Explorer。

  • 编辑

    根据以下评论进行更新。
  • 可以从桌面使用的WinRT API的子集。
  • 呈现和Javscript引擎与IE 10中使用的引擎相同。但是该应用程序本身无法在Internet Explorer内单独运行
  • 关于.net - WinRT和.NET的说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9509678/

    10-13 07:46