Windows运行库(Windows Runtime)是微软Windows自Windows8之后引入的一种新的编程API,最新版本是3.0,一种新的跨平台应用程序架构,支持的开发语言包括C++(C++/CX(组件扩展))、托管语言C#和VB,以及Javascript,原生支持X架构和ARM架构,为了更好的安全性和稳定性,也支持运行在沙盒环境中,即支持容器技术,实质上是基于COM的非托管的本地API。WINRT API的定义存储在“.Winmd”为后缀的元数据文件中,格式编码遵循ECMA 365的定义,和.net使用的文件格式一样,但是有改进。

       全新的C++/CX(组件扩展)语言,借用了一些C++/CLI语法,允许授权和使用WinRT组件,但相比传统的C++下COM编程,对于程序员来说,有更少的粘合可见性,同时对于混合类型的限制相比C++/CLI也更少。在新的称为Windows Runtime C++ Template Library(WRL)的模板类库的帮助下(就好似ATL之于COM一样) ,规范的C++代码(遵循COM化规范)也同样可以用在使用了WinRT组件的程序里。不过MSDN建议使用C++/CX而不是WRL。

       元数据描述了用于WinRT平台的代码。定义了一套编程范式来实现编写可跨编程语言共享的面向对象的代码。同时也支持反射等服务。

        WinRT运行库定义了XAML用户界面,实现了应用程的生命周期,支持后台功能,在应用程序间共享数据等。另外,使用.Net Core编译生成为本地化代码,程序启动更快,消耗内存更小。  与提供的附加功能相比,可能更重要的是现在可用的普遍性。这就是VS的新的项目类型:UWP。

       一个UWP程序用三个项目实现:一个项目用于Windows程序,一个项目用于Win Phone应用程序,另一个是共享的代码项目,二平台间可以共享XAML代码。按照新的通用项目模板生成的相同二进制代码不仅可以用于Windows 和Windows Phone,还可以应用于XBox、物联网(Internet of Things,IoT)设备和HoloLens。当然,功能可能不是普适普用。

     总结如下,一个UWP程序二进制图像,可以在每个Windows10设备上运行。