我个人觉得作为一个传统桌面应用(desktop application)的程序员,要在Win8 Metro下用C++熟练开发应用程序, 有几个门槛需要跨越:
(1) Win8 Metro系统原理的学习,理清它和传统桌面程序的关系。
(2) C++11的学习, 许多C++11的新特性已经在Metro开发中被广泛使用(比如auto, lambda等)。
(3) C++/CX语言及其原理的学习,C++/CX是微软为支持元数据(meta data)模式的开发,而在标准C++的基础上加了些扩充。
(4) WinRT类库的学习,理清该类库的体系结构及使用方法。
(5) 通过XAML方式开发UI的学习,除了熟练使用微软内置的XAML元素,还要能定制自己需要的控件。
(6) D3D(D2D)的学习, 以及它们和XAML交互方式的学习, 开发一些高端产品最终会需要在XAML里实时Rendering自己的东西。
其中(1)(2)(3)相对比较容易,其中(4)(5)则需要比较长时间的实际项目开发才能掌握,(6)则需要一些线性代数(矩阵)的一些知识才能学好。
一般来说,如果有WPF和D3D开发经验,转到Metro开发会轻松很多,但是现实中往往很少有人会同时掌握这2项,因为前者一般是.Net程序员,而后者通常是游戏程序员。
从理论上来说,Metro开发也是windows上最新技术的集合,有C++11的支持,有GPU加速支持的D3D(D2D)引擎,有面向对象的跨语言(元数据描述)的WinRT类库,有通过标记(XAML)描述的界面, 而且它是Native的(非托管),所以性能上也有保障。
我们现在还不能断定Win8 Metro能否成功,如果它真的成功了,无疑是类似过去从DOS到Windows的跨越。就是苦了我们这群苦命的程序员,又要学新东西了:)
对Win8 Metro,你怎么看呢?
posted on 2012-06-15 09:19
Richard Wei 阅读(4217)
评论(6) 编辑 收藏 引用 所属分类:
win8 metro