我個人覺得作為一個傳統桌面應用(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 閱讀(4243)
評論(6) 編輯 收藏 引用 所屬分類:
win8 metro