轉載標記一個win8開發系列的入口

來自 談一談 Windows 8 的軟件開發架構


關於windows8的架構,這張圖流傳的相當廣泛

但是有多少人明白這其中的奧祕,我特意做了一些實驗,來發現這到底是怎麼一會兒事兒。

 

首先來看看win32 時代我們開發一個應用的過程

image

一直都是折騰類庫來開發的,dotnet類庫比win32類庫進了一步,做了一些更深的封裝。雖然dotnet更先進,但c++的既存代碼非常豐富,而且其內存密集操作巨大的性能優勢,讓人難以割捨。但建立一個混合c++類庫和dotnet類庫的項目時,結合起來並不那麼令人愉快,P/invoke,c++/cli 比較麻煩。

再來看看WinRT

image

Oh yeah,只有一種庫,winmd lib。隨便混合,你不需要關心一個winmd類庫是用什麼語言編寫的,而且這個winmd類庫只有一個版本,而且他可以在 x86 x64 arm 的win8上執行.以前混入c++類庫後面對多平臺的部署可是很頭疼的,現在,這事兒不存在了。

當然傳統的c++ lib 肯定可以用,一旦使用,就要自己考慮一攬子平臺問題,既然win8是個多平臺的系統,您自己掂量着辦吧。

 

 

再來說說directX,做遊戲的,第一關心的就是圖形圖像api,很遺憾,dx目前沒有winmd的版本。

image

微軟提供了三個平臺的傳統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一定會成功。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章