设为首页 收藏本站
查看: 645|回复: 0

Windows Phone 7 开发之深入浅出-进阶篇之开发模式

[复制链接]

尚未签到

发表于 2015-5-14 09:01:33 | 显示全部楼层 |阅读模式
       上一部分我们主要讲述了Windows Phone 7 开发环境的搭建,并且带领大家用两种模式做了一个经典程序”Hello WP7”,以便我们对WP7 开发从直观上有一定的认识.这一部分我们将对Windows Phone 7 的开发进行系统的讲解。
     1.       Windows Phone 7 应用程序架构
  为了更好的系统的说明Windows Phone 7 应用程序架构,我们从Windows Phone7 的这张架构图说起。
   DSC0000.png
  
      我们会看到,在一个Windows Phone 7程序最底层运行的是.NET Compact Framework,它是Windows Phone程序运行的核心组件。在这层之上是一些通用服务的接口,例如传感器API,位置API,Windows Live服务,网络服务,多媒体等等。再上面一层则是 Silverlight和 XNA所使用的一些独有内容。最上层则是你基于这两种不同架构所编写的应用程序。
     从这张图上我们很清楚的可以看出,新一代的WP7 开发只支持托管代码的开发,而不知持C++的开发。
    2. Windows Phone 7托管代码是你唯一的选择
   对于普通的ISV和开发者来说,托管代码将是开发WP7唯一的选择。你将不能使用C++来编写程序,同时,也不能对已有的native.dll或者系统函数进行P/Invoke调用。也就是说,不要奢望将你的某些代码封装在native.dll里面然后在托管代码里面调用。
  
    3.  两种开发模型可以选择
      而编写托管代码将有两种方式,一种是编写Silverlight的应用程序,另外一种方式是编写XNA的程序。
    这里的Silverlight 程序不同于常规意义上的Silverlight,虽然它是脱胎自Silverlight 3,但是又去掉了一部分不适用于移动设备的特性,同时又加入了一些Silverlight 4的特性或者是针对移动设备的代码。同时,常规概念中咱们所看到的Silverlight程序都是in browser的;但是对于Windows Phone 7上的Silverlight应用程序来说,它们都是out browser的,也就是说脱离浏览器单独运行的。
    对于XNA程序来说,对于绝大部分国内的开发者来说或许是个陌生的东西。它是以前微软推出的用来开发XBox上的游戏以及Zune上的应用程序的一套开发工具。很遗憾的是,由于XBox和Zune一直没有正式的进入国内,所以国内的开发真关注这方面的内容的甚少。同样,它也是采用托管代码。它的开发环境是一套基于Visual Studio称之为XNA Game Studio的东西。
    4.XNA Game Studio还是 Silverlight?
              既然WP7的开发有两种模式,那么摆在开发者面前的第一个问题,就是我们在开发时究竟选择XNA还是Silverlight呢?
  选择XNA或是 Silverlight 并不像选择功能列表或是性能指标那么简单。这两种框架是针对不同目标和不同思想而设计的。同时,这两种框架的选择也不会受硬件和规则的限制,也就是说使用哪种框架,更重要的在于开发者,和开发的游戏。
    什么时候选择Silverlight?
             如果要开发一个已经存在的Xbox 360或是PC游戏程序的伴侣程序(并非游戏本身),或是只是显示一些数据和信息,那么使用Silverlight将是一个最佳的选择。Silverlight 提供给开发者一个带界面的开发环境,开发者可以通过使用拖拽的方式进行控件的布局。而且这些程序将以WP 程序固有的风格显示出来。而使用XNA Game Studio 实现这种效果,则需要去自己生成这些样式。
            如果视频只是程序中某页面中的一部分,在屏幕的局部显示(而不是全屏幕),这时必须选择Silverlight。Silverlight中允许使用媒体的控件在应用程序中进行混合排列,而XNA只支持全屏显示,不支持视频混排界面。
  同样在程序中如果使用到IE 控件,那么也必须使用Silverlight 模式,因为只有在这种模式下才支持IE 控件。而XNA只支持http(s)协议,不支持IE控件。
           如果你的程序需要软键盘输入,那么你应该考试使用Silverlight。该模式默认包括软键盘的操作。而XNA使用则需要自己来创建软键盘。当然这两种模式都支持真时的键盘输入。但是看看当前的WP7手机有多少
  有硬键盘呢?(但是如果你真的想在XNA模式下使用软件盘也是可以的 具体请参考http://msdn.microsoft.com/en-us/library/ff827869.aspx )
           如果你曾有过Web 程序的开发经验,或者说你正在移植一款游戏,想尽早完成,那么Silverlight将是你不错的选则。
    什么时候选择XNA?
          如果你的程序符合更新/渲染的循环模式,这时XNA就是你的最佳选择了。如果你的程序来自于Xbox360或是PC游戏,那么XNA更是你最佳的选择了。XNA是针对游戏开发设计的标准框架,它的结构完全适用于游戏产品的开发。
         如果你想制作一款真实的3D游戏,那么必须使用XNA。Silverlight 只能通过2D技术来模拟3D效果。
         XNA 包括一种管线机制,可以在build时对资源进行处理,而SilverLight则不包含这种机制,需要开发者自己处理资源,以便实现相同的效果。
  XNA 可以直接访问硬件来进行图像的渲染,而Silverlight是不能的。同时XNA还可以轻松的控制视频卡的状态,例如:透明度、线框或实体。这些使用的是Direct3D技术,跟在桌面程序上使用Direct3D是一致的。
         如果程序中会使用到大量精灵和动画效果,那么XNA 仍旧是你的首选,因为Silverlight 在计算时会占用大量的CPU资源,而XNA会把这种计算放到显示硬件上进行操作。以减少系统开销。
  WP7 提供了800*480 的大屏幕,这是一个很高像素的屏幕,许多原有游戏如果不进行重绘,将无法正常显示在屏幕上,XNA提供了基于硬件的高质量拉伸功能。可以使开发者在开发程序时,使用相对小的分辨率,然后在真实设备上按硬件情况进行拉伸。因此,你想更好的进行重绘,可以使用XNA模式。
        如上所述, 我对WP7开发的模式选择,做了如下总结:
        (1) 开发应用首选SliverLight,游戏首选用XNA
        (2) 界面元素固定首选SliverLight,元素变化多首选用XNA
        (3) 界面单一用SliverLight,界面华丽用XNA
        通过如上所述,我想你应该很明确你的程序要用什么技术了吧?接下来我们会分别将一下这两种模式开发的基本理论,我们还是从常用的SliverLight说起。
  
  
     

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-66791-1-1.html 上篇帖子: Windows Phone 7 学习流程攻略(二) 下篇帖子: 解决WIndows 7中诡异的软件图标损坏问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表