Microsoft 最新推出的Windows Phone 7 智慧型手机主要的诉求对象不止是一般的普罗大众,还包括为数众多的企业用户,所以在软体支援方面加入了对云端服务的支援。图1所示即为Windows Phone 7 的软体支援,上方显示的是Runtime 和工具,下方显示的是云端相关的服务,两者构成开发Windows Phone 7 应用程式的支援,以及应用程式执行时期的支援。

图1:Windows Phone 7 的软体支援

在支援Windows Phone 7 应用程式开发的Framework 方面,Windows Phone 7 提供了两种Framework,分别是Silverlight Framework 与XNA Framework。 Silverlight Framework 是以XAML 文件为基础的应用程式设计概念,透过事件驱动机制的帮助,提供与开发Windows 应用程式和Silverlight 应用程式相同的程式开发体验。 XNA Framework 主要的目的则是用来支援以回圈为基础的游戏程式,意即利用回圈不断地更新画面显示的内容,显示流畅的游戏效果。

Silverlight Framework 和XNA Framework 都是架构在NET 平台上的应用程式开发架构,能够有效率地协助程式设计师发展安全的智慧型手机应用程式,而且程式设计师只要稍微修改现有的Silverlight 应用程式或XNA 应用程式,例如修改萤幕的高度和宽度,并加入智慧型手机特有的感测器相关的功能,就可以将Silverlight 应用程式或XNA 应用程式移植到Windows Phone 7 上执行。

使用Silverlight Framework 来开发Windows Phone 7 应用程式类似设计Silverlight 应用程式,以Silverlight Framework 为基础的Windows Phone 7 应用程式是由一堆的Page (继承自PhoneApplicationPage 类别的衍生类别) 组成的,每一个Page 是一个副档名为.XAML 的文件,代表一个操作画面,程式设计师可以利用Visual Studio 2010 Express for Windows Phone 或是Expression Blend for Windows Phone 来设计Page 的使用者介面。XNA Framework 和Silverlight Framework 不一样的地方在于XNA Framework 主要的用途在支援开发游戏程式,提供2D/3D 的动画,音效,及各种游戏相关的功能,协助有志于开发游戏程式的企业或个人发展Windows Phone 、Xbox 360、Zune 播放器、以及Windows 7 平台的游戏程式。 XNA Framework 和Silverlight Framework 不一样的地方在于XNA Framework 主要的用途在支援开发游戏程式,提供2D/3D 的动画,音效,及各种游戏相关的功能,协助有志于开发游戏程式的企业或个人发展Windows Phone 、Xbox 360、Zune 播放器、以及Windows 7 平台的游戏程式。

在支援应用程式开发方面,程式设计师可以利用Framework 提供的功能控制Windows Phone 7 的多点触控萤幕,感测器,音效装置,以及麦克风等硬体,或是播放声音与影片。

在档案处理方面Windows Phone 7 应用程式只能存取位于隔离储存区(Isolated Storage) 中的档案,无法存取隔离储存区以外的任何档案,避免恶意程式危害到其他应用程式或Windows Phone 7 本身的运作。

Windows Phone 7 支援的Location 功能可以和云端服务提供的Location 服务整合,协助应用程式查询装置的实际位置,在装置位置改变时得到通知,判断装置移动的方向和速度,或是计算两点之间的距离。

支援上述种种功能的底层是一组功能完整的Framework,如图2 所示,位于最底层的Common Base Class Library 提供了Microsoft .NET 平台的基本功能,也是Silverlight Framework 与XNA Framework 的基础。

图2:支持开发Windows Phone 7 应用程式的Framework图2:支持开发Windows Phone 7 应用程式的Framework

除了内建在Windows Phone 7 智慧型手机的Framework 以外,Windows Phone 7 应用程式也可以使用到网际网路的云端服务,包括Windows Azure、Xbox LIVE 服务、Notification 服务、Location 服务、以及其他各种协力厂商提供的Web 服务和WCF 服务,甚至是REST 服务(Representational State Transfer) 等先进的技术,为Windows Phone 7 应用程式提供更丰富的功能支持。透过云端服务的帮助,能够让使用者在使用不同的电脑装置时都可以存取到共同的资料,享受相同的服务,是支持发展新一代的行动运算解决方案的重要基础。透过云端服务的帮助,程式设计师不但能够使用到超越Windows Phone 7 本身内建的功能以外的更多功能,而且云端服务是24 小时不间断的服务,不会因为智慧型手机的电池电力耗尽而无法取得服务。

Microsoft 提供的云端服务中,Notification 服务能够协助Windows Phone 7 应用程式以订阅的方式收到欲处理的事件,节省定时询问特定的资料或状态耗费的电力。 Location 服务能够利用Wi-Fi、Cellular、和GPS 等资料,为Windows Phone 7 应用程式提供定位相关的功能。另外,Identity 服务能够提供身份验证功能,Feed 服务能够提供资料喂入服务,Social 服务能够提供社群服务,而Map 服务则可以提供地图与导览服务。Windows Phone 7 应用程式开发完成后,程式设计师可以利用Portal 服务将开发好的应用程式发布到手机线上软体商店(即Marketplace),让使用者购买和使用。

Silverlight Framework vs XNA Framework

了解了Windows Phone 7 的硬体支持和软体支持之后,在建立Windows Phone 7 应用程式专案的时候,程式设计师必须面对选取Silverlight Framework 或选取XNA Framework 做为应用程式开发基础的抉择。从图3 所示的Framework 架构功能图可以看出,Silverlight Framework 与XNA Framework 的底层是一组共同的服务,提供感测器相关的功能,Location 功能,Live 服务功能,网路通讯功能,XNA 的音效API,以及XNA 的媒体API,而位于这一组共用服务底下的则是.NET Compact Framework,由.NET Compact Framework 提供基础程式开发协助,包括资料型态,XML 文件处理,LINQ 语言整合查询, Isolated Storage 隔离储存区,WCF 服务,与序列化等功能。

图3:Silverlight Framework 与XNA Framework 的架构与功能

从图3 可以看出Silverlight Framework 和XNA Framework 具有相同的本质,差别在于Silverlight Framework 和XNA Framework 支持的是不同类型的应用程式。Silverlight Framework 支持开发一般的Windows Phone 7 应用程式,提供程式设计师设计应用程式需要的控制项以及显示功能,当然也支持动画功能供应用程式使用,而XNA Framework 主要的用途是支持程式设计师设计游戏相关的程式,包括画面连续更新显示的协助,Content Pipeline 游戏内容处理功能,以及2D/3D 的图形显示。

XNA Framework 的Content Pipeline 是一种制作游戏内容(包括Texture、Sprite、Mesh、Effect、Font、Music、音效、Level 设定、和角色的特质)的功能,协助程式设计师在游戏设计的阶段准备游戏程式执行时期需要用到的所有游戏内容,避免游戏程式执行的时候为了将各种不同的资料格式转换成游戏支持的内容格式而影响游戏执行的速度。

图4 所示即为XNA 的Content Pipeline 功能处理游戏内容的过程:
图4:XNA Content Pipeline 功能处理游戏内容的过程

由图4 的内容可以看出,不同格式的游戏内容格式经由Importer 汇入之后,会转换成Content DOM (Document Object Model) 能够表示的物件格式,也就是Processor 能够处理的格式,Content DOM 表示的物件经由Processor 处理之后,透过Content Compiler 编译成.XNB (XNA Binary File 的缩写) 格式的内容,以便被Windows、Xbox 360、或Windows Phone 7 平台中执行的游戏载入使用。
XNA 的Content Pipeline 功能允许程式设计师扩充其内建的功能,以处理新兴的游戏内容格式,或是产出自订的输出格式。 XNA 的Content Pipeline 功能允许程式设计师扩充其内建的功能,以处理新兴的游戏内容格式,或是产出自订的输出格式。

表1 列有Silverlight Framework 和XNA Framework 的功能特性以及适用的应用程式类型:

选择开发Windows Phone 7 应用程式欲使用的Framework 之后并未限制应用程式不能使用另外的Framework 提供的功能,也就是说选择Silverlight Framework 做为应用程式发展基础的应用程式还是能够透过参考组件的方式使用到XNA Framework 提供的功能,反之,选择XNA Framework 做为应用程式发展基础的应用程式也同样能够透过参考组件的方式使用到Silverlight Framework 提供的功能。

转载于:https://blog.51cto.com/linzheng/1079230

Windows Phone 7 软件体系结构相关推荐

  1. 设计模式与软件体系结构复习资料——设计模式

    考试题型:选择.简答.设计 目录 软件设计模式 第一章 面向对象设计概述 1. 面向对象设计的表示方法 2. 优秀软件系统特性 3. 面向对象设计原则 3.1 ==单一职责原则== 3.2 ==开闭原 ...

  2. 第23节 软件构件技术和软件体系结构

    软件构件技术和软件体系结构 1[单项选择题]( )不是活动历时估算依据. A项目范围说明书 B活动资源需求 C组织过程资产 D项目进度计划 [参考答案]D [题目解析]活动历时估算的依据有:活动清单. ...

  3. 软件体系结构1~5章知识点整理

    欢迎大家进入我们的个人博客网站一起交流讨论.http://codeingshuang.com 目录 绪论 第一章 软件工程和软件设计概述 第二章 软件模型和描述 第三章 软件体系结构建模和UML 第四 ...

  4. 软件体系结构期末--广东外语外贸大学

    前言: 所有题目的答案,均来自老师上课的ppt.⚠老师上课的提问和强调就是平时记笔记的关键.平时上课要多理解,考前才不至于死背.名词解释部分当初我背了20个,也就对了4个,不过其实也还好.(建议背重点 ...

  5. 软件体系结构概念视图_主题301:概念,体系结构和设计

    软件体系结构概念视图 在你开始前 了解这些教程可以教给您什么以及如何从中获得最大收益. 关于本系列 Linux Professional Institute (LPI)在三个级别上对Linux系统管理 ...

  6. 软件体系结构复习整理

    一. 认识软件架构 本书的主旨: 阐明企业目标.产品需求.设计师的经验.构架和最终系统之间的关系--它们构成带有回路的.可由开发组织实施管理的周期 架构商业周期(ABC): 软件架构是技术.商业和社会 ...

  7. 软件体系结构风格之C/S,三层C/S,与BS

    C/S的物理结构,其发展历程为(1)->(3)->(2),本文接下来要介绍的C/S为(3),即胖客户端瘦服务器,服务器只管数据库,接下来要介绍的三层C/S为(2),即客户端不胖不瘦. C/ ...

  8. 软件体系结构风格(第5-8课时)

    摘要:本文给出软件体系结构风格的定义,并介绍几种常用风格:管道过滤器.数据抽象和面向对象组织,基于事件的隐式调用,分层系统,仓库系统,过程控制环路 软件体系结构风格是什么 描述特定系统组织方式的惯用范 ...

  9. 初识软件体系结构(1-4课时)

    前四个课时的内容是"软件体系结构概述". LW老师的讲课带劲,逻辑性强,也接地气,节奏不快不慢,很nice- 软件架构师 这门课最对口的职业是软件架构师,软件架构师是工作在项目经理 ...

  10. 《软件建模与设计: UML、用例、模式和软件体系结构》一一2.10 UML扩展机制

    本节书摘来自华章计算机<软件建模与设计: UML.用例.模式和软件体系结构>一书中的第2章,第2.10节,作者:(美)Hassan Gomaa,更多章节内容可以访问云栖社区"华章 ...

最新文章

  1. 计算机网络-基本概念(1)【网络层】-ARP协议以及数据传输过程
  2. 2020 中国开源年会(COSCon'20)再启程:开源向善(Open Source for Good)
  3. OpenGL基础23:平行光与点光源
  4. VS Code unins000尝试在目标目录创建文件时出错
  5. 设置部署服务器的运行端口,以太坊swarm配置bzz运行常见问题解决方案
  6. 百度地图api 在3D地图中设置自定义样式
  7. 蓝筹股票会退市吗?什么是白马蓝筹股票?
  8. java练手代码大全手机版_Java版打字练习游戏源码
  9. 金融初学者的感受:兴趣的魔力
  10. 深入浅出--何为多线程(引用自大神Kyrie lrving)
  11. 恒指期货实盘记录及下周行情分析!
  12. 直角坐标系和极坐标系
  13. then 微信小程序_微信小程序异步处理
  14. 数据挖掘和知识发现的技术、方法及应用
  15. placement new理解
  16. 看房子软件测试初学者,新人必看,测试大佬私藏的入门性能测试五步走,果断收藏!...
  17. 推荐系统案例-网飞电影推荐系统-Netflix Recommender system
  18. js 模拟from提交post
  19. 【SSL】2128可可摘苹果
  20. 社交效率管理,你get了么?——做一款基于日程的联系人管理工具

热门文章

  1. HDU 6704 K-th occurrence(主席树 + RMQ + 后缀数组)题解
  2. linux网络编程--服务器模型(epoll/select/poll)
  3. vue-resource HTTP API基础
  4. TCP和UDP Socket
  5. 一些会遗忘的代码属性
  6. 老李分享:Android性能优化之内存泄漏3
  7. 利用R语言美化决策树
  8. corrplot包与ggcorrplot相关图(二)
  9. Android 隐藏环形进度条,Android环形进度条
  10. java02动手动脑