關于windows8的架構,這張圖流傳的相當廣泛
但是有多少人明白這其中的奧秘,我特意做了一些實驗,來發現這到底是怎么一會兒事兒。
首先來看看win32 時代我們開發一個應用的過程:
一直都是折騰類庫來開發的,dotnet類庫比win32類庫進了一步,做了一些更深的封裝。雖然dotnet更先進,但c++的既存代碼非常豐富,而且其內存密集操作巨大的性能優勢,讓人難以割舍。但建立一個混合c++類庫和dotnet類庫的項目時,結合起來并不那么令人愉快,P/invoke,c++/cli 比較麻煩。
再來看看WinRT:
Oh yeah,只有一種庫,winmd lib。隨便混合,你不需要關心一個winmd類庫是用什么語言編寫的,而且這個winmd類庫只有一個版本,而且他可以在 x86 x64 arm 的win8上執行.以前混入c++類庫后面對多平臺的部署可是很頭疼的,現在,這事兒不存在了。
當然傳統的c++ lib 肯定可以用,一旦使用,就要自己考慮一攬子平臺問題,既然win8是個多平臺的系統,您自己掂量著辦吧。
再來說說directX,做游戲的,第一關心的就是圖形圖像api,很遺憾,dx目前沒有winmd的版本。
微軟提供了三個平臺的傳統c++ lib,這里面包括 dx11,也就是說做游戲必須要用c++,當然一定會出現各種開源引擎,可以用任意語言調用來寫游戲,包括js。
只是這次微軟一次放出了太多的變化,讓我們的抉擇一下變得太多。有點不知所措了。
wp7才締造了一個完全dotnet framework的環境,并且反響還不錯,win8馬上祭出了winrt。
從dotnet framework遷移到winrt并不算跨度大,最大的變化是c++的加入,dx的加入。
壞消息是本來一個很清楚的xna一統桌面、手機、家用機的局勢,變得很撲朔迷離了,終究微軟一定會有一個XNA winmd,也許換個名字,也許干脆叫DX,最終實現pc三平臺、家用機、手機公用一套圖形接口。
但這個過渡期會多久,這期間多種技術、多種版本并舉,煩惱的開發者會變得很憤怒,微軟究竟能不能給出比較好的方法來平穩過渡,我們拭目以待。
好消息是龐大的c++ dx游戲群可以很快的轉變成win8的 metro 版本,主流游戲引擎只需一個小小的轉身就可以for metro了。
不要用愚蠢的決策來傷開發者的心,win8一定會成功。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
