谈一谈 Windows 8 的软件开发架构

系统 2078 0

关于windows8的架构,这张图流传的相当广泛

谈一谈 Windows 8 的软件开发架构

  但是有多少人明白这其中的奥秘,我特意做了一些实验,来发现这到底是怎么一会儿事儿。

  首先来看看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一定会成功。

谈一谈 Windows 8 的软件开发架构


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论