提供可靠、可信的 Metro 风格应用程序

随着我们为 Windows 8 和全新 Metro 风格应用程序而开发应用模型,我们也随之确立了一个关键性的结构要求,即为用户提供可放心使用的应用程序。具体来说,应确保应用程序在资源使用方面运行良 好,应用程序之间不会相互干扰,应用程序仅在获得用户许可的前提下使用系统资源;而且用户可轻松安装和卸载应用程序等。为了实现这些属性,开发人员需要一 个可靠的平台和一系列功能强大的工具。这就要求我们“另起炉灶”,而不是在现有系统上进行翻新。而 Windows 8 在这一方面进行了全方位的革新。本篇博文将详细介绍我们为向用户推出可靠、可信的 Metro 风格应用程序而在平台级别所开展的部分工作。本篇博文的作者是开发体验团队的项目经理 John Hazen。–Steven**

Windows 8 Metro 风格应用程序平台开发中的一个核心原则是确保用户可放心使用其应用程序。这是我们共同的使命;在本篇博文中,我将向您介绍我们的愿景,即通过设计专属于您的应用程序,让您放心、可靠地使用应用程序。

文章开篇,我先来解释一下何谓“可信度”。想象一下,一名用户正在 Windows 应用商店中浏览 Metro 风格应用程序;我们希望用户此时能将注意力集中到应用程序上,并思考某款应用程序是否为他们的心仪之选。我们希望客户认为,应用程序将以其预期的方式运 行,因而能在其系统中表现出良好的性能,仅使用已授权的数据和信息,并与其他应用程序和谐共存。事实上,我们希望客户不仅仅这样认为,而是充分信任我们所 提供的应用程序就是如此。

我们对平台设定的目标是帮助大家一同构建能体现这一可信度愿景的出色应用程序,因而在默认情况下我们即可获得客户的信任。为此,我们对整个系统的方方面面都投入了大量精力。以下图片展示了我们的构想:

标题中所列举的可影响应用程序可信度的因素图

应用程序的可信度:面向 Metro 风格应用程序的 Windows 8 SDK、Windows 应用认证工具包、应用程序签名、
应用容器、评级与审查、应用商店上架过程、无障碍安装、遥测反馈**

本篇博文所讨论的内容涵盖了以上方面,而且文末将深入探讨我们应用程序的功能。首先,让我们快速回顾一下以下内容:

  • Windows 应用商店 –客户的使用体验始于应用商店,用户可在此一站式购买 Metro 风格应用程序。为了进入应用商店,您的应用程序必须经过包括安全性检查在内的多项审查,以确保技术与政策的合规性。当应用程序发布于应用商店后,社区将对 您的应用程序进行评级和审查。上架过程和社区审查将共同有助于打造一个良好的环境,让客户满怀信心地试用应用程序。
  • 应用程序安装 – Windows 8 将替您完成应用程序部署的各个方面,因此您的客户无需担心安装、更新或删除应用程序的过程将对其他应用程序产生不良影响。
  • SDK –面向 Metro 风格应用程序的 Windows 8 SDK 将提供一系列定义明确的 API,其有助于您构建出可靠的应用程序,遵循应用商店的上架要求,并为您的客户提供最佳的使用体验。
  • 应用容器和功能 – 相比传统的桌面应用程序,Windows 8 在应用程序之间进行了更深层次的划分,因此您可提高应用程序彼此间交互的可预测程度,并为客户提供一致程度更高的体验。

当然,我们知道任何上架过程都有可能产生不良竞争,API 组可能会受到滥用,某些开发人员也可能会巧妙地回避 SDK 限制,因此应用容器并非坚不可摧。但是我们相信我们对这一新生态系统所进行的投入将有助于您构建出让客户满意的应用程序。这一多维立体式的方法是目前构建 客户信任最有效的方式,而且我们将不断吸取经验,并改进其中的各个方面。现在,让我们来探讨可信度这一主题。

Windows 应用商店

我们团队中的一些同事曾在 Windows 应用商店博客中发表了数篇博文,介绍应用商店的整体设计和规划情况。如果您尚未阅读,我建议您抽空了解一下应用商店的有关情况,因为这将在您与客户联系中起到至关重要的作用。让我们一同来看看应用商店帮助应用程序生态系统构建可信度的一些方法。

首先,应用商店的上架过程将对应用程序的质量和可靠性建立一个一致的基线。Windows 应用认证工具包中所包含的技术一致性测试将有助于您在提交应用程序之前了解是否已达到预期的标准。随着您和其他开发人员不断推出符合这些标准的应用程序,客户将十分兴奋地发现并试用新应用程序,从而为大家创建一个更强大的应用程序生态系统。

应用商店同时可让客户轻松评级和审查,从而有助于最佳应用程序脱颖而出,吸引更多客户来放心地试用评级排名靠前的应用程序。在以下示例应用程序的列 表页面中,请注意突出显示的不仅是评级和审查结果,同时还包括应用程序列表页面中的两个其他重要元素。在安装新应用程序之前,客户将查看应用程序安装后所 拥有的权限(本博文稍后部分将阐述详情)。在应用程序安装后,如果客户对应用程序的内容或行为有所顾虑,他们能够轻松进行相应的报告,我们将跟进相关状 态,以解决所识别的所有问题。帮助客户确定哪一应用程序可最大程度满足其需求,并让客户提供建议与反馈是改善 Windows 8 生态系统中整体可信度的重要方式。

Windows 应用商店中示例游戏应用程序的列表页面,其中列出了评级、审查结果、权限和报告链接

Windows 应用商店中应用程序的列表页面**

最后,应用商店将收集遥测数据,帮助您调查您客户所发现的问题,其中包括他们所经历的故障次数和类型。我们认为这些自动的遥测结果可反映出应用程序 中不可靠,或与客户期望不符的行为。我们的目标是不仅有效利用客户通过评级或审查对应用程序提供的个体反馈,同时让您深入了解您的应用程序在客户计算机中 的实际运行情况,从而让您基于这些数据改进您的应用程序。

通过这些方式,Windows 应用商店将成为您重要的合作伙伴,将您与希望使用您应用程序的用户紧密相连,并有助于让他们满意地使用您的应用程序。

只需一次点击,即可获得应用程序

当客户关注您的应用程序列表页面时,您不希望存在任何阻碍客户获取您应用程序的内容。在 Windows 8 中,用户只需点击一个按钮即可获得应用程序。客户不再需要回答一连串问题或反复点击按钮。客户登录应用商店后,如果发现自己喜欢的应用程序,只需点击按 钮,并确认购买即可!

而最振奋人心的消息是您完全不需要编写安装代码即可让这一切奏效;Windows 8 为您提供了这一切。Windows 不仅帮您完成了安装,而且使用数字签名确保从应用商店到安装过程中,甚至应用程序加载后和在客户计算机的运行过程中的完整性。如果 Windows 检测出应用程序与其数字签名不再匹配,那么其将指导客户从应用商店中下载正确的版本。

由于 Windows 将在分散的位置安装各个应用程序,并在独立和私人位置存储各个应用程序的数据和设置,因此客户无需担心安装或删除某一应用程序将影响其他应用程序或其计算 机的运行。相比从前,客户将更加乐意使用更多应用程序,并得知安装和删除应用程序将不会随着时间的推移而影响其使用体验(事实上,借助 Windows 8 合约,您所安装的每个应用程序都将为您提供更佳的使用体验)。由于几乎不存在其他应用程序将破坏您应用程序的使用体验的情况,因此您将从中获益匪浅。

采用单一、可验证并一致的机制来安装应用程序不仅将简化您的工作,同时还将为您的客户提供轻松、积极的使用体验,进而让他们放心获取更多出色的应用程序。请参阅应用包和部署了解有关应用程序部署的详情。

面向 Metro 风格应用程序的 Windows 8 SDK

您的应用程序为客户提供的使用体验越佳,客户在您发布新应用程序和更新后试用的可能性就越大。面向 Metro 风格应用程序的 Windows 8 SDK 是您构建客户乐于安装的应用程序的重要基础。

我们对面向 Metro 风格应用程序的 API 投入了不少心思,这不仅简化了 Windows 的编程环境,同时也为开发人员提供了一个行之有效的平台,您可在其中自信地构建应用程序,并确信所构建出的应用程序将与 Windows 8 Metro 风格应用模型配合良好。

抵制诱惑,请勿想方设法调用 SDK 以外的 API。这最终将降低客户对您应用程序的好感。我们无法保证 SDK 以外的 API 能在此版本或今后的版本中与 Metro 风格应用程序良好兼容,因此您可能发现您的应用程序无法在所有客户的计算机中正常运行。异步环境是 Metro 风格应用程序设计的基础,而这些 API 也可能无法在异步环境中正常运行。最后,由于这些 API 将访问 Metro 风格应用程序通常不应交互的资源或数据,因而会破坏客户的信任感。基于这些原因,我们在 Windows 应用认证工具包中提供了众多检查项目,以帮助您捕获有可能无意调用未经 SDK 暴露的接口。

虽然存在隐藏或混淆对 SDK 以外 API 调用的可能性,但是这仍有悖于客户的期望和应用商店的政策。最终,我们创建了这一平台来帮助像您一样的开发人员构建令人惊叹的应用程序,并确保应用程序能 与系统和其他应用程序及设备良好配合,以获得客户的满意与好评。使用 Metro 风格的 SDK 将是您实现这一目标的基础。

集成与隔离时均可运行良好

全新安装过程对于您的客户而言至关重要,SDK 将有助于您构建出可与系统良好集成的应用程序。除此之外,客户希望从您的应用程序和我们的平台中获得高度的可靠性。相比传统 Windows 桌面应用程序,我们可让您在更大程度上分离 Metro 风格应用程序,从而帮助您实现可靠性目标。在 Windows 8 中,各个 Metro 风格应用程序在独特的应用容器上下文中运行,而且这些容器有助于将应用程序及其数据与 Metro 风格应用程序进行隔离。

应用容器将提供一些所有 Metro 风格应用程序共有的特征。它们可以:

  • 为您的应用程序提供专用的环境,其中包括您自有的用于数据和设置的存储。因此,您不需要担心其他 Metro 风格应用程序更改您应用程序的数据、设置或行为。
  • 有助于确保您的应用程序不会意外地影响 Windows 平台自身的可靠性,或意外地以客户所不希望使用的方式来使用其数据或设备。
  • 提供定义明确的方式,通过您在清单中的声明来扩展您应用程序的功能,并在应用程序列表页面中向您的客户公开。

进行这一程度的分离将大幅简化编写可靠、并尊重用户的应用程序的过程。与此同时,我们都希望应用程序彼此间能良好交互。Windows 8 将为 Metro 风格应用程序提供几个机制来进行彼此间的协作,以及与平台的协作,进而提供令人满意的体验,这些机制包括:

  • 应用合约,这是一个将 Metro 风格应用程序绑定至一起,并与系统 UI 绑定的粘附机制。
  • FilePicker,该机制可让您的应用程序与用户选定的数据交互。
  • 应用程序功能声明,该机制可让您的应用程序在与您的功能相匹配时,以编程方式与设备和数据交互。

这些定义明确的方式可让您的应用程序与其他应用程序和系统进行更深层次的交互。应用容器旨在帮助您为客户提供其所期望的可靠性,并尊重客户意愿来使 用系统和数据。应用容器的限制旨在帮助实现客户对一致、直观应用程序行为的期望,而使用技术让您的应用程序在应用容器以外运行代码则将违背用户信任和应用 商店的政策。

在预览阶段与开发人员的讨论过程中,我们发现有些应用程序误解了或意外误用了其中某些机制,因此让我们来详细谈谈应用程序的功能。

应用程序功能声明

应用容器能以多种方式使用功能声明来获得扩展,其中每一种方式均为启用某种应用场景而设计。因此,我们建议您仅在某种条件下使用它们。这些功能可分为 4 个主要存储段:

  • 数据库:默认情况下,应用程序无法访问客户的数据库,例如音乐库或文档库。我们建议您使用 FilePicker 来与这些库交互,但是在某些极少数的情况中,您的应用程序必须能够直接读取和管理这些位置中的数据。
  • 设备访问:默认情况下,应用程序无法使用大多数用户认为对其隐私内容敏感的设备,其中包括网络摄像头、麦克风和位置。当应用程序需要使用这些设备时,它们必须声明其意图,并获得用户的同意。
  • 网络访问:默认情况下,应用程序无法访问客户的网络。由于多数应用程序将与 Internet 交互,因此我们在面向 Metro 风格应用程序的所有 Visual Studio 模板中启用了这一特殊功能。如果您的应用程序需要的不仅仅是简单的 Internet 访问,那么您可了解以下选项。
  • 用户身份:这些功能可直接访问特定客户的公司登录信息,或与其身份相关的证书。尽管这些功能被利用的机会并不多,但是某些企业应用程序却必须具备这些功能,而且您可能在银行交易(授权过程中可能需要使用智能卡)等应用场景中使用这些功能。

在所有这些类别中声明功能就像在 Visual Studio 清单设计器中选中项目一样简单。但是,请仅在该功能对于某应用程序实现某应用场景至关重要时添加该功能。在 Consumer Preview 中,我们发现提交至应用商店中的一些应用程序声明了其所有功能,或某些并非基本的功能。因此,尽管功能列表可能相对较短,但是您应查看这些功能的详情,以 及使用方式。

Visual Studio 清单设计器的屏幕截图,其中显示了功能选项卡,您可在此选择系统功能,或您的应用程序可使用的设备

Visual Studio 清单设计器**

数据库

这些功能可授予您应用程序访问不一定由您的应用程序创建的用户数据的权限。用户希望应用程序可尊重用户意愿来访问其私人数据。服从您应用程序中受信 用户位置的方法之一是仅声明您应用程序所必要的最小访问权限。尽管用户可在其硬盘驱动器或网络中随处浏览文件,但大多数情况下,您可通过使用 FilePicker 来完全避免使用这些功能。例如,使用 FilePicker 来提供文件打开体验,或为您的应用程序添加“另存为”功能,让您的用户可从应用程序中将内容保存至他们的库位置或可移动存储中。

清单声明提供的内容
musicLibrary

为本地 PC 和家庭组 PC 提供在音乐库中添加、更改或删除文件的功能。

videoLibrary

为本地 PC 和家庭组 PC 提供在视频库中添加、更改或删除文件的功能。

pictureLibrary

为本地 PC 和家庭组 PC 提供在图片库中添加、更改或删除文件的功能。

documentsLibrary

为本地 PC 和家庭组 PC 提供在文档库中添加、更改或删除文件的功能。应用程序仅可访问文档库中使用文件类型关联声明定义的文件类型。应用程序无法访问家庭组 PC 中的文档库。

removableStorage

提供添加、更改或删除可移动存储设备中文件的功能。应用程序仅可访问可移动存储中使用文件类型关联声明在清单内定义的文件类型。应用程序无法访问家庭组 PC 中的可移动存储。

在 Consumer Preview 中,我们发现一些提交的应用程序声明了这些功能,而实际上这毫无必要。例如,应用程序基于很多原因声明了 documentsLibrary,其中包括:

  • 在文档库中存储应用程序特定的设置。私人存储旨在提供这一功能。单击此处可了解有关应用程序设置和存储的详细内容。
  • 存储用户生成的文件。使用 FilePicker 可让用户将文件保存至包括文档库在内的任何位置,因而能让用户更恰当地完成这一操作。
  • 与其他应用程序共享文档。共享合约旨在实现这一目的。

如果您的应用程序的设计目的是成为系统中某一给定文件类型的主要处理程序(如 Fax Viewer 需要处理用户文档库中的所有 .TIFF 文件),那么请声明此功能。

设备访问

所有应用程序都可使用诸如方向传感器和加速计等许多设备。但是大多数客户认为某些设备比其他设备更为敏感,因为那些设备与用户的隐私高度关联。您可 在这些设备上构建大量优秀的应用程序。例如,如果您有一款可供多名玩家对战的休闲游戏,那么使用近程将是建立设备间连接的不错方式。

由于这些设备与用户隐私关联紧密,因此 Windows 8 将确保一旦您声明这一功能,系统将在应用程序首次试图访问特定设备时提示客户批准这一访问。例如,如果您的应用程序提供了地图功能,那么您可能希望访问客 户的地理位置数据。当您的应用程序首次尝试获取这些信息时,客户将看到提示信息,以批准应用程序的访问。这一批准将长期有效,直至客户明确决定在稍后时间 通过设置删除该访问权限。即便您将某功能添加至清单中,客户仍可拒绝您的应用程序访问这些设备,因此请在设计过程中充分考虑,从容应对缺乏访问权限的情 形。例如,如果客户拒绝您的应用程序对内置 GPS 的访问,那么您只需提示用户从地图中选择其位置即可。

清单声明提供的内容
位置

提供对当前位置的访问权限,该信息可从诸如 PC 中 GPS 传感器等专用硬件或可用网络信息中获取。

网络摄像头

提供对网络摄像头视频源的访问权限,让应用程序从连接的网络摄像头中捕获快照和电影。

麦克风

提供对麦克风音频源的访问权限,让应用程序从连接的麦克风中记录音频数据。

近程

通过近场近程无线电,与 PC 附近的设备连接。近场近程可用于发送文件或与附近设备中的应用程序通信。

### 网络访问

大多数应用程序需要与 Internet 连接,因此默认情况下,面向 Metro 风格应用程序的 Visual Studio 模板中包含了 internetClient 功能。如果您的应用程序不需要通过 Internet 进行通信,那么您应删除此功能。internetClientServer 功能通常用于游戏或 VOIP 等对等 (P2P) 应用场景,但是除非您应的应用程序必须在防火墙中开启一个端口,否则请勿使用该功能。请在您的应用程序需要在私人网络(如家庭内不同设备间或公司网络连 接)中进行通信时使用 privateNetworkClientServer 功能。

清单声明提供的内容
internetClient

提供对诸如机场和咖啡馆等公共场所中 Internet 和网络的出站访问。大多数需要 Internet 的应用程序都应该使用这一功能。

internetClientServer

提供对诸如机场和咖啡馆等公共场所中 Internet 和网络的入站和出站访问。该功能是 internetClient 的超集。如果启用了该功能,则无需再启用 internetClient 功能。

privateNetworkClientServer

提供对 Intranet 网络的入站和出站访问,这些网络包含身份经过验证的域控制器,或用户已指定家庭或工作网络。

### 用户身份

大多数开发人员不需要这些功能。这些功能的使用将受到高度限制,并受制于其他上架政策和审查。但是这些功能在有些情形中必要且恰当,例如某些银行需 要双因素身份验证,并需要允许客户提供装载数字证书的智能卡以确认其身份。主要面向企业客户而非消费者��计的其他应用程序可能需要访问在没有域凭据的前 提下无法访问的公司资源。

清单声明提供的内容
enterpriseAuthentication

提供与需要域凭据的企业 Intranet 资源连接的功能。

sharedUserCertificates

提供访问诸如智能卡证书等软件和硬件证书的功能,以验证用户的身份。用户在运行时调用相关 API 的情形中必须进行相应的操作(插入卡片、选择证书等)。如果您的应用程序通过证书声明包含某个私人证书,那么则没有必要包含这一功能。

构建可信度

客户希望安全地使用 Windows 8 和您所构建的应用程序。Metro 风格应用程序体验旨在为您简化构建应用程序的过程,从而让所有用户都可以放心地试用并购买这些应用程序。这将形成一个具有建设性意义的良性循环,广大用户 可从中找到并购买许多令其爱不释手的应用程序,从而为开发人员创造大量机会,让他们能创建并提供更多优秀的 Metro 风格应用程序。

正如我在文章开篇所提到的,我们将互利共赢;我们相信我们在这一全新生态系统中所进行的共同投资将有助于您构建出让用户满意的应用程序,我们同时希望能与您开展合作,为我们共同的客户推出令人惊叹的全新体验。

未经允许不得转载:空洽网 » 提供可靠、可信的 Metro 风格应用程序

流明天

继续阅读此作者的更多文章