我個(gè)人覺(jué)得作為一個(gè)傳統(tǒng)桌面應(yīng)用(desktop application)的程序員,要在Win8 Metro下用C++熟練開發(fā)應(yīng)用程序, 有幾個(gè)門檻需要跨越:
(1) Win8 Metro系統(tǒng)原理的學(xué)習(xí),理清它和傳統(tǒng)桌面程序的關(guān)系。
(2) C++11的學(xué)習(xí), 許多C++11的新特性已經(jīng)在Metro開發(fā)中被廣泛使用(比如auto, lambda等)。
(3) C++/CX語(yǔ)言及其原理的學(xué)習(xí),C++/CX是微軟為支持元數(shù)據(jù)(meta data)模式的開發(fā),而在標(biāo)準(zhǔn)C++的基礎(chǔ)上加了些擴(kuò)充。
(4) WinRT類庫(kù)的學(xué)習(xí),理清該類庫(kù)的體系結(jié)構(gòu)及使用方法。
(5) 通過(guò)XAML方式開發(fā)UI的學(xué)習(xí),除了熟練使用微軟內(nèi)置的XAML元素,還要能定制自己需要的控件。
(6) D3D(D2D)的學(xué)習(xí), 以及它們和XAML交互方式的學(xué)習(xí), 開發(fā)一些高端產(chǎn)品最終會(huì)需要在XAML里實(shí)時(shí)Rendering自己的東西。
其中(1)(2)(3)相對(duì)比較容易,其中(4)(5)則需要比較長(zhǎng)時(shí)間的實(shí)際項(xiàng)目開發(fā)才能掌握,(6)則需要一些線性代數(shù)(矩陣)的一些知識(shí)才能學(xué)好。
一般來(lái)說(shuō),如果有WPF和D3D開發(fā)經(jīng)驗(yàn),轉(zhuǎn)到Metro開發(fā)會(huì)輕松很多,但是現(xiàn)實(shí)中往往很少有人會(huì)同時(shí)掌握這2項(xiàng),因?yàn)榍罢咭话闶?Net程序員,而后者通常是游戲程序員。
從理論上來(lái)說(shuō),Metro開發(fā)也是windows上最新技術(shù)的集合,有C++11的支持,有GPU加速支持的D3D(D2D)引擎,有面向?qū)ο蟮目缯Z(yǔ)言(元數(shù)據(jù)描述)的WinRT類庫(kù),有通過(guò)標(biāo)記(XAML)描述的界面, 而且它是Native的(非托管),所以性能上也有保障。
我們現(xiàn)在還不能斷定Win8 Metro能否成功,如果它真的成功了,無(wú)疑是類似過(guò)去從DOS到Windows的跨越。就是苦了我們這群苦命的程序員,又要學(xué)新東西了:)
對(duì)Win8 Metro,你怎么看呢?
posted on 2012-06-15 09:19
Richard Wei 閱讀(4282)
評(píng)論(6) 編輯 收藏 引用 所屬分類:
win8 metro