`
devgis
  • 浏览: 133927 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

谈一谈 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一定会成功。

分享到:
评论

相关推荐

    windows驱动开发技术详解-part2

    用WinDBG和VMWARE软件对驱动进行源码级调试,深入Windows操作系统的底层和内核,透析Windows驱动 开发的本质。 本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,而且介绍了编程技 巧...

    Windows驱动开发技术详解的光盘-part1

    用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如用WinDBG和VMWARE软件对驱动进行源码级调试,深入Windows操作系统的底层和内核,透析Windows驱动开发的...

    移动开发者》2012年7月刊 总第1期:HTML5与Hybrid开发

    专题策划 ...6 HTML5、Native或Hybrid App开发全接触 9 Hybrid App:借助HTML5、JavaScript和CSS3开发 技术心得 10 AndroidManifest.xml...26 Android架构纵横谈之软件自愈能力 移动交流汇 29 驾驭Java,做好Android开发

    《程序员》杂志2012年第7期

    智能应用每时每刻都在影响着我们的工作和生活,然而对于许多软件开发人员来说,构建智能应用的技术—智能算法依然披着神秘的面纱。一方面,这些技术的潜在价值可以带来巨大的经济回报,商业公司往往不会轻易示人;...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    电子图书系统初步设计方案.doc

    本系统使用软件开发重用技术可以减少软件开发活动中大量的重复性工作,这样就 能提高软件开发生产率,降低开发成本,缩短开发周期。同时,由于软件构件大都经过 严格的质量认证,并在实际运行环境中得到校验,因此...

    C#微软培训资料

    1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 ...

    云计算浅谈

    微软前一段通知,微软的云计算平台windowsazure在中国的服务将会于10月1日开通。微软承诺未来90%的开发人员将从事云计算方面的工作。在这个重要的时刻,是时候提醒更多的开发人员做技术上的更新。上月有机会受邀为某...

    HGE_系列教材(1-9)

    HGE 是一个富有特性的中间件,可以用于开发任何类型的2D 游戏。HGE 封装性良好, 以至于你仅仅需要关系游戏逻辑(Game Logic),而不需要在意DirectX,Windows 消 息循环等。 HGE 架构在DirectX 8.0 之上,能够跑在...

    编程新手真言......

    第8章 抽象之设计和领域逻辑 167 8.1 大设计 167 8.1 什么是设计 167 8.2 编程能力,代码控制能力,复用与接口,轮子发明与使用 170 8.3 OO,模板,设计模式与设计 171 8.4 设计能力和程序员能力模型 172 8.4 ...

    PT80-NEAT开发指南v1.1

    第一章 关于本手册........................................................................................................................................ 1 简介 ..........................................

    net学习笔记及其他代码应用

    3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

Global site tag (gtag.js) - Google Analytics