如果您正在为 Windows 应用商店开发应用程序,您将使用 Windows 运行时 (WinRT) 进行开发。这是今天唯一的选择。做出选择后,您可以在 C#/XAML 或 HTML/WinJS 用户界面之间进行选择。您不会“选择”.NET 4.5。您正在选择 Windows 运行时。
有两个不同的平台和重叠的术语:
Windows 运行时(通常缩写为 WinRT)和 .NET
自 Visual Studio 2002 和 .NET 1.0 发布以来,.NET 平台已经存在并可用于生产开发目的。使用此平台及其现代版本(带有 Visual Studio 2013 的 4.5.1),您可以构建传统的 Windows 可执行文件或应用程序。从 Windows 服务、为几个不同的 UI 平台(WinForms 和 WPF)编写的桌面应用程序以及复杂的 Web 应用程序都可以创建并且可以在所有现代版本的 Windows 之间移植,但 WindowsRT 除外。 WindowsRT 传统上运行在功率较低的 ARM 处理器上,不能执行为 .NET 编写的传统应用程序。
不幸的是,名称和功能非常混乱。 WinRT(Windows 运行时)是平台,可用于创建 Windows 应用商店应用程序。它目前不能用于构建本机桌面应用程序。 .NET 4.5 不能用于构建 Windows 应用商店应用程序。 WinRT 平台可以针对任何现代 Windows 设备,从平板电脑到台式机。 WinRT 还可以在 Windows RT 上运行,Windows RT 是 ARM 等功率较低的非 x86 芯片组。
所有平台共享多种语言:C#、VB 和 C++。
WinRT 的库表现为一个层,在许多情况下看起来与 .NET 库几乎相同。事实上,文档通常可以用于常见情况。更令人困惑的是,它有时被称为.NET for Windows Store apps。您会发现它不是一个完整的 .NET 4.5 实现。
混淆通常来自于它们非常相似的事实。 WinRT 的底层代码不是 .NET。它是不透明的(主要是用 C++ 编写的)。它看起来像 .NET 4.5,并且通常执行/行为类似于 .NET 4.5,但它与传统 .NET 4.5 应用程序使用的平台不同。虽然您可以创建可作为可移植类库运行的代码并使用所有平台(.NET 和 WinRT)通用的功能和 API,但 WinRT 应用程序不能直接调用 .NET 4.5 代码。
Windows 运行时是一种高度沙盒化和 API 策划的开发人员体验,与各种手机平台(如 Windows Phone 运行时、iOS 和 Android)上的体验非常相似。如果您查看 .NET 平台和 CLR 的“表面”区域,您会发现它变得多么庞大和复杂,并且有很多功能在 Windows 的上下文中没有意义存储应用程序,或者根本不安全。我预计微软将在多个版本中包含来自核心 Windows 操作系统的 Windows 运行时的附加功能。这些 API 可能/可能不会反映 .NET 4.5 中的类似功能。
但是,在 Windows 8+ 系统上,Windows .NET 应用程序可以访问 WinRT 中可用的 API 子集(Microsoft 的营销人员将其称为“流线型”API 集)。例如,您无法访问 WinRT UI 平台并创建使用 WinJS 或 XAML 构建其界面的桌面应用程序,这些仅在 WinRT 应用程序中可用。
.NET Framework Support for Windows Store Apps and Windows Runtime