談一談 Windows 8 的軟體開發架構

2021-09-01 12:11:02 字數 1399 閱讀 7917

關於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一定會成功。

談一談 Windows 8 的軟體開發架構

關於windows8的架構,這張圖流傳的相當廣泛 但是有多少人明白這其中的奧秘,我特意做了一些實驗,來發現這到底是怎麼一會兒事兒。首先來看看win32 時代我們開發乙個應用的過程 一直都是折騰類庫來開發的,dotnet類庫比win32類庫進了一步,做了一些更深的封裝。雖然dotnet更先進,但c 的...

談一談 Windows 8 的軟體開發架構

關於windows8的架構,這張圖流傳的相當廣泛 但是有多少人明白這其中的奧秘,我特意做了一些實驗,來發現這到底是怎麼一會兒事兒。首先來看看win32 時代我們開發乙個應用的過程 一直都是折騰類庫來開發的,dotnet類庫比win32類庫進了一步,做了一些更深的封裝。雖然dotnet更先進,但c 的...

談一談 Windows 8 的軟體開發架構

關於windows8的架構,這張圖流傳的相當廣泛 但是有多少人明白這其中的奧秘,我特意做了一些實驗,來發現這到底是怎麼一會兒事兒。首先來看看win32 時代我們開發乙個應用的過程 一直都是折騰類庫來開發的,dotnet類庫比win32類庫進了一步,做了一些更深的封裝。雖然dotnet更先進,但c 的...