WinRT和.NET澄清

MrL*_*ane 6 .net microsoft-metro windows-runtime

我想澄清一些关于WinRT的问题以及.NET与之相关的内容.以下是我认为是真实的一系列陈述......纠正我错在哪里:

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

sar*_*esh 6

  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.

编辑

根据以下评论进行更新.

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

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