移动客户端软件工厂的开发采用了一种灵活的、与社区连接的流程。这意味着常规小版本和里程碑版本(客户技术预览,也称为 CTP)都可从社区获得。里程碑版本保证软件工厂的高质量和一致性。每周的小版本是一个不断改进的过程,用于从社区获得早期反馈。社区反馈将影响最终交付的内容和方向。
概述
在整个应用程序开发过程中,结构设计师和开发人员鉴别和发现可靠的实施方案和模式。这是一个需要大量工作的过程,尤其在应用程序生命周期后期才发现可靠的实施方案和模式,并强制重构应用程序时更是如此。还有一种选择,就是在应用程序开发项目开始之前,开发团队就进行调查研究,努力确定可靠的实施方案和模式。这种方案也是既费时又困难,因为模式和实施方案在实际应用程序开发过程中才最容易确定。
使用移动客户端软件工厂,结构设计师和开发人员就可以快速整合移动客户端开发中的许多可靠的模式和实施方案。此指南套装提供一套可靠的实施方案,其表现形式多种多样,包括模式、操作方法主题、引用实现、Visual Studio Guidance Automation Toolkit 软件包、可重复使用的组件以及文档。软件工厂中的内容可指导您基于 Compact Composite User Interface Application Block 体系结构的开发移动应用程序的整个过程。通过使用软件工厂,结构设计师和开发人员能够将主要精力集中在实现业务需求上。
情况
随着移动设备(如 Pocket PC)功能的不断增加,以及在商界中的使用愈加普遍,业务解决方案扩大应用范围出现了新机会,现在这个范围将包括远程工作者和移动工作者。他们可能是出差在外的销售人员、仓库中的货物配送工人以及不在现场的工程师。所有这些人员都需要在连接或断开的情况下访问公司的 IT 系统。
例如,销售人员在客户驻地可能需要查看产品规格或交货时间表。这种情况适合于脱机(断开)模型,在这种情况下中央系统会以特定时间间隔更新移动设备上存储的数据 - 也许是在每天早晨用户到办公室时,也许是晚上用户在家或旅馆房间连接到系统时。同时,移动设备将更新信息(例如新订单)送回中央服务器。
在公司驻地工作的人员可能也需要移动解决方案,如查看仓库中的存货,或者汇总订单以便配送货物。连接(联机)模型适合这种情况。
不在现场的工程师可能在部分或全部时间需要现场数据,但其所在位置已超出公司无线网络的覆盖范围。在这种情况下,在需要这种服务时由移动电话连接提供联机体验,而其他任务则可适用脱机模型。
需要补充的是,用户经常需要使用若干应用程序,具体取决于在主系统中定义的角色,并且所有这些应用程序都集成到后端企业资源规划 (ERP) 或联系人关系管理 (CRM) 平台。所有这些因素结合起来,就并非只需要简单的单个应用程序。而是需要如图 1 中的示例应用程序所演示的,一种综合性的、可扩展的、灵活的移动业务解决方案。
图 1:移动业务解决方案示例

图 2 显示基于 Microsoft 操作系统的移动业务解决方案的公用组件以及一些应用程序和服务。Microsoft 平台提供所有应用程序所需的核心功能,包括构建移动应用程序所需的工具和代码库,以及为这些应用程序提供数据和集成工具的服务。在大多数情况下,复杂的移动解决方案会集成到后端 ERP 或 CRM 系统或其他公司应用程序。

图 2:移动业务解决方案的基础平台、分层和组件。
图 2 的上部显示移动客户端项目实现的移动业务解决方案开发方法。使用由模式和实施方案小组开发的可靠的技术和代码块加上由 Microsoft 合作伙伴开发的代码块,可为移动客户端设备上运行的应用程序实现服务和组件。
同时,图 3 显示简单的移动应用程序的实际体系结构。公用组件包括:
• 用户界面层,其中包括:
• 视图。这些是用户可以交互的屏幕上的控件。
• 提供者。这些是驱动视图的类。
• 业务逻辑层,其中包括:
• 业务实体。这些是代表业务概念(如“客户”、“银行帐户”或“地址”)的类。
• 业务逻辑组件。这些是实现应用程序中的大多数业务逻辑的类。
• 业务工作流。这些驱动应用程序中的总体控件流。
• 资源和数据层,其中包括:
• 数据访问组件。这些可从本地存储(如 Microsoft SQL Server 移动版)提取数据,也使用基础结构组件管理数据订阅和到期。
• 服务代理。这些用作访问外部 Web Service 的代理程序,用于应付在偶尔连接的环境中工作所面临的其他挑战。

图 3:移动业务应用程序的公用组件和分层
按照图 3 中所示的设计和结构构建应用程序需要实现常见任务的基础结构组件,其中包括:
• 管理:
• 记录。这包括存储关于规范事件的数据,连接时可从服务器收集这些数据。
• 部署。这使将应用程序部署到设备上以及在添加新功能时更新应用程序变得更容易。
• 配置。这包括支持丰富的存储机制和允许服务器传送复杂数据,例如每个用户或每个设备的特定配置。
• 安全性:
• 凭证管理。这包括存储用户凭据,从而能够验证对偶尔连接的 Web Service 的验证。
• 连接性:
• 连接和网络管理。这包括提供评估设备的当前连接性和对连接性的更改做出反应的功能。
通过使用容器模型,还可以简化应用程序体系结构和内部逻辑的开发。移动客户端软件工厂使用 Compact Composite UI Application Block 作为此容器的基础。移动项目中的组合应用程序块几乎就是可供桌面 .NET 应用程序使用的组合应用程序块的原样复制品,这意味着可以在这两个环境中利用现有技能和代码。
结构设计师的情况
作为结构设计师,您要确保移动智能客户端应用程序来自可靠的、基于实践检验的基础,并且这个基础能够:
• 提供应用程序开发的标准方法。
• 提高常见体系结构组件的重复使用性。
• 隐藏复杂性。
• 使开发人员能够将精力集中于业务问题,而不是集中在基础结构组件上。
移动客户端软件工厂为创建这种基础提供了一个起点。它提供一套移动应用程序通用功能和机制的出厂实现。另外,您还可以自定义和扩展它,以便更好满足特定需要。您可以添加模式和操作方法主题,也可以扩展 Guidance Automation Toolkit 软件包,以便更好满足您所在组织的特定需求。
开发人员的情况
作为应用程序开发人员,您要将精力集中在业务逻辑和应用程序的用户体验上。您要使用提供必需的基础结构和体系结构机制的基线。这个基线就是由结构设计师修改和扩展的移动客户端软件工厂。
您可以查阅模式、操作方法主题和引用实现,来了解开发智能客户端的可靠实施方案。准备好构建应用程序后,使用 Guidance Automation Toolkit 软件包生成项目,如初始解决方案、模块和服务代理程序。
优点
移动客户端软件工厂具有以下优点:
• 起点更高。它为结构设计师和开发人员创建高质量的解决方案起点(基线)提供了有效途径。基线包括通常迭代 0 或项目的起步和确立阶段发现的代码和模式。这意味着,与没有源代码或指南的应用程序开发相比,项目可从较高的成熟水平开始开发。
• 风险降低。它提供可靠的基线体系结构。通过在开发周期的早期揭示设计决策和风险,基线解决在体系结构方面十分重要的使用案例。
• 质量提高。它提供重复使用的资产、指南和示例,以应对智能客户端的常见情况和挑战。代码和指南已针对目标情况进行过测试。测试作为软件包的一部分提供,可以扩展测试并用于自动验证更改和确定问题。
• 生产力提高。它包括 Visual Studio 2005 的自动化工具包。使用这个工具包,开发人员能够以一致和可重复的方式轻松应用指南。
• 易于采用。它是开放并可自定义的。结构设计师和开发负责人可自定义工厂,以满足特定需要。工厂会得到完整的记录。
工厂内容
移动客户端软件工厂包含以下内容:
文档:
• 移动客户端软件工厂简介。此文档提供其他文档说明移动客户端体系结构使用的词汇和框架。
• 移动客户端 SF 应用程序块。此文档详细说明常见的可重复使用的从流行的桌面应用程序块得到启示开发的构建块(例如,Composite UI Application Block 和 Enterprise Library)和其他更具体的构建块(例如,Orientation Aware Control Application Block)。
• 模式。此文档介绍模式,模式为常见移动客户端设计、实现和部署问题提供解决方案。
• 快速入门示例。使用 Compact Composite UI Application Block 构建移动应用程序的简单的、介绍性的分步说明。
• 引用实现。此文档说明 AdventureWorks2Go 引用实现的要求、体系结构和实现。
• 引用实现。引用实现是以实际操作演示移动客户端指南的可执行样例应用程序。可以使用引用实现了解如何应用工厂的最终交付产品,也可以使用它将代码或概念复制到应用程序中。
• 指南软件包。移动客户端开发软件包通过遵循一系列指令自动执行开发活动,通常开发人员必须经常手动执行这些开发活动。它帮助开发人员以与体系结构指南一致的方式构建智能客户端解决方案。
现有模式和实施方案资产
工厂使用移植版本的 Composite UI Application Block 解决核心客户端 UI 模式,如组合、提供程序、事件中断程序和布局管理。“组合”模式合并简单的用户界面部分,创建复杂的用户界面,同时允许独立开发、测试和部署各个部分。有关详细信息,请参阅 Composite UI Application Block。
工厂也使用修订版本的 Enterprise Library 应对常见挑战,例如数据访问。
工具包使用 Guidance Automation Toolkit 自动执行常见开发任务,以简化模板和菜单的开发。Guidance Automation Toolkit 是轻型 Visual Studio 可扩展性机制。有关详细信息,请参阅 Visual Studio Team System Developer Center(英文)。
移动客户端软件工厂中实现的许多模式也可供桌面智能客户端使用(在 Smart Client Software Factory 中提供)。
目标用户
本指南针对软件结构设计师和软件开发人员而设计。要使用本指南进行开发,您应该了解以下技术:
• Microsoft Visual C# 或 Microsoft Visual Basic 2005
• Microsoft .NET Framework 2.0 和 .NET Compact Framework 2.0
• Windows Forms
• Windows Mobile 5.0
使用此指南构建应用程序需要运行 .NET Framework 2.0。
系统要求和安装
若要在开发移动客户端应用程序时获得满意的性能,则必须满足以下的最低要求:
• 使用外部设备:
• Windows XP 或 Windows Server 2003
• 1.5 GHz 处理器
• 512 MB 内存(要获得最佳性能,内存最好达到 1 GB)
• 20 MB 可用磁盘空间
• Pocket PC 设备,可用内存为 512 MB
• 使用 Visual Studio 移动设备仿真器:
• Windows XP 或 Windows Server 2003
• 1.5 GHz 处理器
• 1 GB 内存(要获得最佳性能,内存最好达到 2 GB)
• 20 MB 可用磁盘空间
在使用移动客户端软件工厂之前,必须安装一些工具和实用程序。使用移动客户端软件工厂和利用其进行开发需要使用:
• Visual Studio 2005,可从以下网址获得:
http://msdn.microsoft.com/vstudio/
• .NET Compact Framework 2.0,随 Visual Studio 2005 安装,也可从以下网址单独获得:
• http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
• http://msdn.microsoft.com/netframework/programming/netcf/default.aspx
• SQL Server 2005 移动版,可与一些版本的 Visual Studio 2005 和 SQL Server 2005 一起获得,也可从以下网址获得:
• http://msdn.microsoft.com/sql/mobile/default.aspx
• http://www.microsoft.com/sql/editions/sqlmobile/installsdk.mspx
• Windows ActiveSync 4.1,可从以下网址获得:
• mobile/downloads/activesync41.mspx>http://www.microsoft.com/windowsmobile/downloads/activesync41.mspx
• Windows Mobile 5.0 Pocket PC SDK,位于:
• mobile/downloads/default.aspx>http://msdn.microsoft.com/mobility/windowsmobile/downloads/default.aspx
• http://www.microsoft.com/downloads/results.aspx?pocId=&freetext=%u2022%09Windows%20Mobile%205.0%20Pocket%20PC%20SDK&DisplayLang=en
• 已本地化的仿真器图像,可从以下网址获得:
• http://www.microsoft.com/downloads/details.aspx?familyid=EEC33AE3-C129-4C25-ABAA-18E8E842178F
• http://www.microsoft.com/downloads/details.aspx?familyid=52FED581-8F8D-4C46-9966-4832098191B7
还可以从 mobile/howto/resourcekit/default.aspx>http://msdn.microsoft.com/mobility/windowsmobile/howto/resourcekit/default.aspx 下载 Windows Mobile 5.0 开发人员资源工具包。其中包括:
• Visual Studio 2005 专业版的 90 天试用版
• Windows Mobile 5.0 SDKs for Pocket PC and Smartphone
• ActiveSync 4.1
• .NET Compact Framework 2.0
• 已本地化的仿真器图像和其他有用的开发人员工具
• SQL Server 2005 移动版
根据移动设备的功能针对移动客户端软件工厂所测试的移动设备。
• Windows Mobile 5 电话设备:
• Cingular 8125 PocketPC 电话是具有 GSM 功能的设备,有四分之一 VGA 屏幕和滑出键盘。它对测试屏幕方向更改和键盘支持很有用。此电话具有一些功能,使用仿真器测试这些功能很困难。
• T-Mobile MDA 是具有 GSM 功能的设备。
• 版本 XV6700(与 Sprint PPC-6700 相同)是具有 CDMA 功能的设备。
• 带有方形显示屏的移动设备:
• Palm Treo700w 是带有方形屏幕的 Windows Mobile 5.0 电话,它对于带有方形屏幕和键盘支持进行测试很有用。也可以使用等效的仿真器进行此类型测试。
• HP iPAQ hw6515 电话带有方形屏幕,屏幕下面是键盘,但它是 Windows Mobile 2003 设备。
• 带有 VGA 屏幕的移动设备:
• Dell Axim x51v 带有 VGA 屏幕。
移动客户端软件工厂功能
表 1 列出了移动客户端软件工厂为其提供指南的功能。