我想澄清一些有关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内单独运行