WinRT ── Windows Runtime for Windows 8 多编程语言跨平台应用架构
WinRT或 Windows Runtime 是 Windows 8 中的一种跨平台应用程序架构。
WinRT 支持的开发语言包括 C++(一般包括 C++/CX)和托管语言 C# 和 VB,还有 JavaScript。WinRT 应用程序同时原生支持 x86 架构和 ARM 架构,同时为了更好的安全性和稳定性,还支持运行在沙盒环境中。
WinRT 应用程序可快速部署并运行在沙盒环境中。对运行库的测试,表明其是构筑在 Win32 API 之上的,.Net 使用了类似的实现。
WinRT 组件设计时,即着眼于多种语言和直接 API 的互通性,包括本地代码、托管代码还有脚本。比如 C++/CX 的组件扩展就被建议仅用于存在 API 壁垒的状况,而不要用于其他目的。
WinRT 元数据,描述了用于 WinRT 平台的代码。定义了一套编程范式,来实现编写可跨编程语言共享的面向对象的代码。WinRT 同时还支持反射等服务。
WinRT 由于依赖于一些增强 COM 组件,本质上 WinRT 是基于 COM 的 API。正因为其 COM 风格的基础,WinRT 可以像 COM 那样轻松地实现多种语言代码之间的交互联系,不过本质上是非托管的本地 API。API 的定义存储在以 ”.winmd" 为后缀的元数据文件中,格式编码遵循 ECMA 335 的定义,和 .Net 使用的文件格式一样,不过稍有改进。使用统一的元数据格式相比于 P/Invoke,可以大幅减少 WinRT 调用 .NET 程序时的开销,同时拥有更简单的语法。
WinRT 全新的 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 平台下,还有更多特色控件。
越来越多开发者随着微软 Windows8 的正式发布投入到了 Win8 应用程序开发的行列,越来越多的控件商也紧跟潮流开发能创建 Metro 样式界面的控件。如 ComponentOne Studio for WinRT XAML,新增的界面呈现控件专为数据可视化、布局、输入以及更多用途而设计。源于风行一时的 Silverlight 控件设计风格,展现 WinRT 平台魅力。
长按二维码关注 "德云社区" ,点击最下方 "阅读原文" 了解更多资讯
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。
|