构建 Windows 应用商店应用的安全最佳做法

确保客户放心地使用应用是我们为 Windows 应用商店应用创建应用平台的主要目的之一。我们希望客户确信应用将按客户预期的方式工作,能够与其他应用和谐共存且能够卸载干净。客户信任的建立基于多种因素:从 Windows 应用商店上架,到无障碍安装和卸载,再到使用位置信息和网络摄像头之前征询客户同意,以及用于测试应用是否符合 Windows 应用商店提交条件的 Windows 应用认证工具包。客户信任不是基于任何单一功能、流程或质量获得的,它综合了多种因素,因此,客户信任贯穿整个端到端流程。我们在提供可靠、可信的应用博文中已详细介绍了我们所采取的措施。 现在,我们希望具体讨论一下有关安全应用的话题,如何才能让您的应用赢得客户信任。当今的应用通常会保存重要的客户数据,从财务记录到不可替代的个人照片,不一而足。对于许多客户来说,这些数据与其生活息息相关,他们希望应用能够保护数据的安全。即便应用保存的数据非常少,客户仍然希望应用能够按设计的方式工作,不会干扰其他应用的运行。 在应用中实施安全最佳做法对于赢得客户信任、逐渐提高客户满意度至关重要。幸运的是,常用的安全最佳做法都非常简单易行,为您的应用增加安全保护并不太难。此外,应用在专用的应用容器上下文中运行,可以将该应用及其数据与其他应用隔离。应用容器为您的应用提供专用的环境,包括用于存储数据和设置的专用存储空间。 Windows 8 和 Visual Studio 2012 提供了一系列 API、控件和工具,可以最大限度地减少可能存在的应用漏洞,缓解常见的安全问题。当然,任何平台都无法做到完美无缺,但我们相信,将这些安全措施进行有效的组合搭配,必将能构建出杰出的应用,我们还将继续对应用平台进行改进。在本博文中,我们介绍了一些增强应用安全性的技巧和最佳做法,帮助您为客户提供更加安全可靠的体验。 我们现在就开始吧! 技巧 1 – 使用 Visual Studio 进行编译 从 Windows 8 开始,我们默认启用了许多现有的安全最佳做法,您无需进行任何设置,只需使用 Visual Studio 2012 进行编译即可。在使用 Visual Studio 2012 进行编译时,默认情况下,现在将为应用内的本机代码启用以下安全技术,以保护应用免受常见攻击的威胁:/GS、ASLR、DEP 和 SeHOP。 技巧 2 – 最大限度地缩减应用功能 应用可以依次声明各项功能,定义应用与不同资源和设备的交互方式。请注意,您需要根据应用需求定义最小的功能集,确保应用以必需的最小特权运行。通过使用最小的功能集,可以减少应用中可被利用的漏洞数量。 例如,“家庭和工作网络”功能允许应用访问本地网络中的计算机,比如玩对等游戏。此项功能对于本地服务的预发行测试也非常有用,但通常并非应用必不可少的功能,且可能导致应用被不受信任的本地网络(例如,咖啡店或机场的无线接入点)所利用。请考虑删除该功能,转而使用远程服务器来执行测试,远程服务器可以为应用重现现实世界的交互环境,测试效果更准确。如果您使用了“家庭和工作网络”功能,在提交应用申请应用商店认证之前,请务必将其删除。 采用最小功能集的应用 – 仅具备 Internet 访问功能! 请注意,“企业身份验证”、“共享用户证书”和“文档库”功能专门针对企业访问和嵌入文档(例如,打开的文档需要打开所包含的其他文档)而设计,需要公司帐户才能将包含这些功能的应用提交至 Windows 应用商店。大多数应用通常不需要使用这些功能,但对于需要访问企业资源的企业应用来说,这些功能是必需的。这些功能受到严格限制,必须接受附加的…

0

从您的应用共享内容

在 Windows 8 中,共享是一种无处不在的体验,也是一种自然的用户期望。用户通常会在您的应用中遇到令人惊叹的内容,并且希望与好友分享这些内容或将其用于其他应用。作为开发人员,您可以使用“共享”合约来满足用户的这种期望,该合约提供了轻型、上下文和轻松模型来完成应用到应用的共享。 您可能对“与好友聚餐”应用非常熟悉,该款应用已在创建能够脱颖而出的 Metro 风格应用中进行了介绍。在本篇博文中,我们将以“与好友聚餐”应用为例进一步讨论如何将应用变为出色的共享来源。我们将引用该应用中的视图、层次结构和“最擅长”声明来指导我们制定与构建出色的共享来源体验相关的设计和技术决策。 “与好友聚餐”应用的视图和层次结构 什么是共享?为什么它很重要? 如在博文借助应用栏采用按需 UI 中所示,Windows 8 引入了超级按钮这一快捷方式作为入口点,来执行各种普遍使用的操作,例如跨应用和在 Windows 中进行搜索、共享以及连接到设置和设备等。合约可以支持这些快速访问入口点的功能,从而使您的应用内容大放异彩。共享便是此类合约中的一种,其用途是通过实现您的应用和其他应用之间的共享,来为用户带来更多的功能。 Windows 中的端到端体验由两部分组成。首先,必须具有能够以不同格式来提供内容的源应用。其次,还必须具有注册为能够识别特定格式并作为共享内容的目标的目标应用。Windows 通过“共享”合约创建了源应用和目标应用之间的通信渠道。当您的应用是共享来源时,用户可放心地依赖于“共享”超级按钮来在共享窗格中查找应用列表、好友和其他可使用您应用中的内容的位置。让我们来看一个例子。 显示可从源应用(本示例中为 Internet Explorer) 接收共享网页内容的目标应用列表。 通过“共享”合约的应用到应用共享是个极好的机会,具体表现为以下几个方面。 首先,其利用了多种多样的应用生态系统。通过在应用商店中搜索应用类别,您就已经可以开始确定食品与餐饮应用的价值主张与生产力应用或社交应用等的区别所在。即使在这些类别之中,应用也可以数不清的方式加以区分。通过与其他应用共享内容,您的应用可以利用这些应用的最擅长内容,从而使端到端的用户体验变得更加强大。 其次,操作系统中的可预测共享入口点不仅意味着您无需再占用应用的 UI 中的宝贵屏幕区域来放置共享小部件,而且用户操作也变得更加轻松,因为他们无需担心在每个应用中查找这些入口点。从用户的角度来看,在不切换上下文的情况下实现您的应用和其他应用之间的共享意义重大,因为这使他们能够变得更加专注。另外,这还将有助于保持您应用的沉浸式用户体验。 最后,通过加入“共享”合约,您始终可以将您的应用与不断发展的应用生态系统相关联。此外,您无需了解或集成各个单独或新的第三方 API,因为“共享”合约将在源应用和目标应用之间创建公共语言来交换数据。 定制共享来源体验 借助 Windows 8 中的共享系统,您的应用可以基于用户正进行交互的应用视图来定制您的应用中的共享内容,从而创建丰富的共享体验。这样可以满足用户对任何特定应用视图中共享内容的期望。例如,在“与好友聚餐”应用中,登录页的内容与“我的备选列表”区域或餐厅详细信息视图中的内容会有所不同。因此,用户期望应用和系统可以智能地发送和接收当前视图中的相关内容。定制并不意味着必须将每一个应用视为用于接收内容的可行目标,而是为从您的应用共享内容提供多种表示方式,从而扩展到多样化的应用到应用共享应用场景。 在接下来几个部分中,我们将了解一下如何将您的应用设置为共享来源,并为应用中几种不同的视图构建定制的数据包和体验。 共享登录页中的今晚的计划 共享无共享内容的视图中的有用错误状态 共享我的备选列表中的用户选择。 让我们来深入研究一下。 实施共享来源 在 Windows 8 中,您可以使用共享 API 来使您的应用与其他应用共享内容。首先,您需要决定要实施的数据格式和数据类型。通过“共享”,您可以将数据打包为标准的数据格式(例如,URI、HTML、位图和文件),以及 http://schema.org 中指定的自定义数据格式。接下来,我们将重点关注“与好友聚餐”应用为何应支持这些格式,以及如何支持。 在您决定提供哪种数据格式之后,请使用 Windows.ApplicationModel.DataTransfer 命名空间中的类来打包数据。DataPackage 是通过“共享”合约进行数据交换的基础单元。 当用户显示超级按钮并选择“共享”时,您的应用会收到 datarequested…

0

设计简单而安全的应用包 – APPX

开始在新的 Windows 8 开发平台上工作时,可能第一个要问的问题就是“如何以一种简单而安全的格式打包应用程序”?在 Windows 8 之前,有两种主要的安装技术:Windows Installer 和 ClickOnce。如提供可靠、可信的应用博文中所述,有许多产品可以帮助开发者管理安装和更新应用程序的复杂性,但是,应用程序打包、安装和更新仍然是困扰开发者和最终用户的一个棘手问题。对应用程序打包和部署的主要目的是取代同时安装脚本——这样整个过程将更为简单明了。 既要支持针对本机代码和托管代码的现有技术,同时还要支持通过 Windows 运行时提交的新技术,Windows 应用商店应用也受到了更多的挑战。更为重要的是,我们希望向那些极富创意但是刚开始学习开发应用程序的新手开发者开放应用程序构建。我们所需要的,是便于开发者使用,是支持各种应用程序技术,是方便打包和更新还要安全、智能和简洁 – 是的,这一长串需求都要满足!Windows 8 APPX (“.appx”) 应用包格式可以满足上述的需要。 简单 我们的目标就是要简单。以前的安装程序技术要求您学习如何编写安装脚本或者要使用特殊的工具,将应用构建成为一种专门的二进制格式。对于 Windows 应用商店应用,我们考察现有资源,在现有标准的基础上来构建,而非另外创建一个格式。我们汇总了所有找到的已知的应用打包技术,寻找每种技术的来源,并且权衡不同技术的优劣。在反复讨论之后,我们决定使用一种简单但很常用的技术 – ZIP。 ZIP 使用非常广泛,它是 1989 年开发出的一项比较古老的技术,利弊都有。利用 ZIP 的优点在于它得到广泛地使用和支持,但是不好的一面是它早于许多新型技术高级功能(如现代的 Web 和 XML)之前开发出来。另外,ZIP 格式规范包括对许多过时功能(如跨多个软盘)的要求,这些功能与今天的新技术已经毫无关联。还有一个最大的挑战就是,尽管 ZIP 是一个事实上的标准,但是它却不是一个开放式的国际标准。现在我们来了解 OPC。 构建于以下标准之上:ZIP + Web + XML = OPC 2006 年,Office 团队与其他 Microsoft 小组合作,开发并推出了一个新的开放打包惯例 (OPC) 标准,旨在作为一种开放式的国际标准。OPC 最初发布于 2006,作为…

1

从您的 Windows 8 应用(和网站)中支持卓越的“播放到”体验!

“播放到”功能概述 “播放到”功能可让您在家庭网络中流式处理从应用到 Xbox 以及其他受支持的设备中的音乐、照片和视频。试想一下,您只需轻轻点击,即可在大屏幕电视上播放应用中的照片和视频,或者在客厅的扬声器中播放应用中的音乐。借助“播放到”合约,您可让用户在其应用中轻松实现这些应用场景。这将是令您的应用在用户客厅中大放异彩的不错方式。 为了提供卓越的端到端用户、开发者和设备使用体验,我们在设计“播放到”功能时,充分考虑了以下因素: 用户:在用户启用了共享功能的网络中(如家庭网络),Windows 8 将自动发现并安装经过 Windows 认证的“播放到”设备。操作系统将为用户提供一致的使用体验,用户能够从“设备”超级按钮中轻扫和点按设备,进而从任何受支持的应用中启动“播放到”功能。包括音乐应用、视频应用以及照片应用在内的所有以媒体为中心的 Microsoft 应用中都将包含“播放到”体验。甚至 Internet Explorer 10 也实施了“播放到”合约,因此用户能够流式处理网页中的照片、HTML 音乐和视频。 开发者:“播放到”开发者合约对基础媒体流式处理技术(协议、格式匹配、转码等)进行了一个高水平的抽象,并简化了在大范围应用中快速实施(和测试)“播放到”体验的过程。所有应用(以及 IE 中的 HTML5 网页)将在默认情况下支持基本体验,并可在随后定制体验或选择退出。 设备:Windows 8 中的“播放到”体验旨在与经过 Windows 认证的“播放到”设备配合运行。经过认证的设备将为用户提供一致、可靠的使用体验。大量消费类电子设备公司正致力于对其多个类型的设备开展“播放到”认证工作。这些设备包括电视、机顶盒、扬声器和音频接收器。正如在今年早些时候举办的电子娱乐博览会 (E3) 上所介绍的,“播放到”接收器支持是一项全新的功能,该功能已被推广到了约七千万个 Xbox 360 控制台中,而且这也是今年秋天所进行的面板更新中的一个举措。请关注 Windows 博客,了解更多设备的上市新闻!   打造引人入胜的交互式体验 “播放到”功能可让您轻松为用户提供引人入胜的多屏体验,这将让您的用户爱不释手,并让您的应用从 Windows 应用商店中脱颖而出。当您实施“播放到”功能时,您将获得: 社交体验,用户能通过您的应用轻松与亲朋好友在家里最大的屏幕中共享喜爱的照片和视频。 随行体验,应用能为用户提供第二屏幕体验,包括简单的远程控制体验以及评级系统(用户能对曲目评分并欣赏内容丰富的专辑和艺术家元数据)等众多方面。 在本篇博文中,我们将以开发者示例和照片应用为例,向您介绍如何构建并测试一个卓越的“播放到”体验。 “播放到”功能如何在 Windows 8 中运行? 首先,让我们了解一下端到端的体验,从用户的角度来理解“播放到”功能的工作原理,在这一过程中,我们只需加入一个新网络来对某一设备流式处理媒体。 我们在 Windows 8 中为用户提供了一个简单的“播放到”设置,且不会影响用户在公共网络中的隐私性和安全性。拥有家庭组设置的电脑,以及用户选择“快速设置”作为其首次运行设置体验的电脑将自动启用共享功能。此外,每当用户加入一个新的网络时,他们都将立刻被问及是否希望启用共享功能,并连接到设备。用户还可通过长按网络连接 UI 浮出控件中的网络名称来显示此消息。 启用共享功能后,Windows 将在约…

0

面向 Windows 8 应用的用户体验集成测试

在博文测试 Windows 应用商店内的应用中,我们曾探讨了在各种不同运行时状态下应测试应用的哪些内容。我们还曾探讨了 Windows 8 用户体验的几个方面,以及这些方面将如何影响您的应用所在的环境。现在,我们将基于对现有应用的测试,更进一步地向您介绍全新的用户体验,并重点介绍您的应用可能遇到的一些有趣的交互和应用场景,以及您应如何确保应用得以正确运行。 常见的布局和行为主题 Windows 8 中推出了一项全新且丰富的功能,该功能可让您的应用为用户提供引人入胜的沉浸式体验。初始屏幕将在应用初始化时向用户显示,并让用户留下对该应用的第一印象。当您的应用启动并运行时,用户能够随时旋转、缩放该应用,或以辅屏或全屏模式查看。更重要的是,这些事件中的任何一项都能以组合形式发生,或按先后顺序发生。例如,当应用初始屏幕得以显示时,该应用可发生方向变更,或者当您将设备插入投影仪时,缩放比例将发生变更,可以贴靠某一视图。因此,让我们更进一步地介绍发生这些事件时所应特别注意的问题。 初始屏幕 当您首次使用某应用,在系统对该应用进行初始化时,或者当系统将该应用从后堆栈挂起状态返回时初始屏幕功能可让您的应用显示活动。为确保您的初始屏幕能够正确显示,请在纵向和横向模式下将应用在全屏中启动,验证您的初始屏幕是否定位正确(通常位于中央),且无动画或视觉问题。此外,还应注意初始屏幕中所显示的图形的分辨率质量,查看是否存在锯齿形边缘或像素化图像。 如果您的应用支持扩展的初始屏幕,那么请验证从初始屏幕到扩展的初始屏幕的切换过程是否一致、流畅。应特别观察是否存在让用户感到不适的体验,如图标位置变动、屏幕闪烁灯。 旋转 旋转有可能发生于应用运行的任何时刻,即便当您的应用处于挂起状态,用户仍有可能进行旋转操作。因此请在演练试用 UI 的多个状态时,验证您的应用是否响应方向变更。应特别观察是否存在布局和翻转问题,因为这些问题将使用户对您的应用的使用体验大打折扣。此外,还应确保在从不同方向切换时,内容不会发生跳转或闪烁。 如果您的应用使用了自动旋转首选项,那么请验证在用户启动应用或切换到该应用时,系统方向是否变更为应用方向的首选项。此外,还应验证您的应用能否在翻转旋转的首选项下使用。例如,如果您的自动旋转首选项为横向,那么应验证您的应用是否在横向和横向翻转模式下正确显示和运行。 如果您无法使用适当的硬件来测试您的应用,那么您可使用 Visual Studio 模拟器来模拟旋转。有关如何在测试中使用模拟器的详情,请参阅使用 Visual Studio 测试 Windows 8 应用一文。 缩放 Windows 8 可缩放您的应用,以维持大量受支持的像素密集硬件的触控体验和可用性。请在 100%、140% 和 180% 等缩放水平下验证应用的用户体验。请在演练试用 UI 多个状态时,确保您的应用能够在所有缩放水平下显示正确。 您可在 Visual Studio 模拟器中使用以下设置来在受支持的水平中测试您的应用: 100% 水平 – 使用 10.6in,1366 X 768 140% 水平 – 使用 10.6in,1920 X…

0

面向应用程序构建专家推出 Windows 应用商店应用实验室

今天,我们面向全球 30 多个城市的应用程序构建专家(开发人员、设计师和企业家)推出了 Windows 应用商店应用实验室。Windows 应用商店应用实验室是您可以访问最新 Windows 8 设备、求助 Windows 技术专家并获得来自技术领先的设计师和数字机构的设计指导的地方。全部免费! 查看并测试最新的 Windows 8 设备 实验室储备了多种具有不同外形的最新 Windows 8 设备,包括 Windows RT 平板电脑,如 Microsoft Surface、Ultrabook 和一体机等。欢迎参与并在各种屏幕尺寸、输入方法和体系结构下测试您的应用。  应用实验室具有不同外形的 Windows 8 设备可供您试用和测试您的应用。 获得 Windows 8 专家的技术指导 我们的 Windows 专家已准备好查看您的应用,并提出您所需要的任何技术建议。他们可以在编码技巧、调试和使您的应用准备就绪并提交给 Windows 应用商店等方面为您提供帮助。 获得来自技术领先的设计机构的设计指导 您还可以邂逅设计师和数字机构工作人员,他们可为您提供能够真正使您的应用变得出类拔萃的设计技巧。设计师可查看您的应用模型或您的整个应用,并提供关于如何改进应用布局、动态磁贴、导航和其他 UI 元素的反馈。 应用实验室位于哪里? Windows 应用商店应用实验室位于全球 30 多个城市里的令人兴奋的设计与技术枢纽,如旧金山的 RocketSpace、伦敦的 Modern Jago、柏林的 Dark Side Bakery、温哥华的 Launch Academy…

0

使用 XAML 和 C# 构建自定义控件

您可能已经知道,Windows 8 XAML 平台的最强大功能之一是平台为创建自定义控件所提供的灵活性。XAML 提供的诸如依赖项属性和控件模板等功能,可以令您方便地创建功能丰富且可自定义的控件。 在上一篇博文“采用 Windows JavaScript 库 (WinJS) 构建自定义控件”中,Jordan Matthiesen 向您介绍创建自定义 HelloWorld 控件的步骤。在本篇博文中,我将向您介绍使用 Xaml 创建同一控件的步骤。我会介绍一些技巧和概念,您可以用来创建可重用的自定义控件,同时还会说明如何创建模板来设定这些控件的样式。我会介绍一些诸如依赖项属性的概念,并介绍使用自定义的 Generic.xaml 文件来创建一个用于定义默认控件模板的隐式样式。 简单的 XAML 控件 首先,我们构建控件 Hello World:从 Windows.UI.XAML.Controls.Control 派生的类。在 Visual Studio 中使用空白项目模板创建一个新的项目。将您的项目命名为 CustomControls。使用“新增项目”模板向导添加您的自定义控件。 Visual Studio 包括一个项目模板,用于创建模板化控件。右键单击该项目,选择“添加”->“新增项目” 选择 Templated Control 项目,并将该控件命名为“HelloWorld.cs” 该模板创建此类: public class HelloWorld : Control{ public HelloWorld() { this.DefaultStyleKey = typeof(HelloWorld); }} 在这个短小的代码块中,我们指出了两种非常重要的详细信息。首先,HelloWorld 类派生自控件。其次,设置 DefaultStyleKey,就是向 XAML…

1

采用 Windows JavaScript 库 (WinJS) 构建自定义控件

如果您曾使用 JavaScript 开发过 Windows 应用商店应用,那么您很可能已经遇到过 Windows JavaScript 库 (WinJS)。该库为您提供了一系列 CSS 样式、JavaScript 控件和实用工具,以帮助您迅速构建符合 Windows 应用商店 UX 基准要求的应用。WinJS 所提供的实用工具包含一系列功能,您可使用这些功能来在您的应用中创建自定义的控件。 您可使用任何您所喜欢的模式或库来编写 JavaScript 控件,WinJS 中所提供的库功能仅是其中一个选项。使用 WinJS 构建控件的一个主要优势在于其可让您创建您自己的控件,且该控件能与库中的其他控件一致地运行。开发与使用您的控件的模式与 WinJS.UI 命名空间中的任何控件完全一样。 在本篇博文中,我将向您介绍如何构建您自己的控件,并在其中包含对可配置选项、事件和公共方法的支持。对于那些对 XAML 控件开发同样感兴趣的读者,敬请期待即将发布的有关该内容的博文。 在 HTML 页面中包含基于 JavaScript 的控件 首先,让我们回顾一下您在页面中包含 WinJS 控件的方式。进行该操作有两种不同的方法:命令性操作(以非介入的方式单独使用 JavaScript)或声明性操作(在 HTML 元素上使用额外的属性来在 HTML 页面中包含控件)。后者可让工具提供设计时体验,例如从工具箱中拖动控件。详情请查看添加 WinJS 控件和样式的 MSDN 快速入门一文。 在本文中,我将向您展示如何利用 WinJS 中的声明性处理模型来生成 JavaScript 控件。要在您的页面中采用声明性的方式包含一个控件,请完成下面的一系列步骤: 在您的 HTML 页面中包含 WinJS 引用,这是因为您的控件将从这些文件中使用…

0

多语言应用工具包,用于使用 Visual Studio 2012 开发 Windows 应用商店应用程序

Windows 8 设计为旨在可以在全球各个国家/地区更好地发挥功用。我们通过与像您一样的开发者合作,发布在全球更多地区范围内具有相关性的应用程序,以便实现上述全球化体验。借助机器翻译或人工专业翻译,您可以为您的 Windows 应用商店应用程序提供更多可用语言,从而面向更广阔的市场和更广泛的目标群体。将应用程序的应用范围推及全球总是开发者优先考虑的事项,不过,利用 Windows 8,这个过程比以往更为容易。 多语言应用工具包是适用于 Windows 8 的 Visual Studio 2012(包括免费的 Express 版本)的扩展程序包,允许您轻松地利用机器翻译服务或借助本地化人员的帮助,自行对您的应用程序进行本地化。本博客概述为什么对您的应用程序进行本地化是非常值得的一项工作,以及如何使用该工具包简化这项工作。 市场机会 Microsoft 将以 109 种语言发布 Windows 8,其中包括 14 种新的显示语言,潜在目标用户超过 45 亿之多。随着 Windows 应用商店的推出,您可以在 200 多个市场中销售应用程序,其中有 70 多个市场将提供本地货币支持。多语言应用工具包 (MAT) 通过帮助您以 Windows 支持的语言创建您的应用程序版本,为您打开了进入这些市场的大门。 除了帮助您开拓新的市场以外,MAT 还支持多种语言的家庭,从而在现有市场环境内达成更多销售。根据美国统计局进行的 2010 年美国社区调查,在美国有大约 3700 万人在家中以西班牙语作为主要语言。这个简单的市场内再挖掘市场的示例,向您展示了以多语言发布应用程序所带来的巨大商机。 为了充分发挥这一市场潜力,您需要一种简单的办法来管理语言支持。MAT 为 Windows 应用商店应用程序开发提供了上述解决方案,无需增加繁琐的流程也不需要语言技能。 利用 MAT,您可以方便地将西班牙语添加到您的英文 Windows 应用商店应用程序,并打开了进入此市场的大门,即使您不会西班牙语也可以做到。许多市场具有相似的多语言机会,您可以利用 MAT 提供的功能和工作流程管理来把握住这些类似的机会;在美国,西班牙语应用程序只是一个示例,向您说明多语言家庭对于您来说也是不一个不可小觑的市场机会。现在,在全球市场环境下,您有绝佳的机会可以创建和销售您的应用程序。 MAT 功能…

1

在 Windows 8 中打造卓越的打印体验

我们利用重新构思并构建 Windows 的这个机会重新考虑了打印功能的方方面面,包括用户体验、开发者平台以及种类繁多的设备环境,以及这些方面如何共同提供卓越的打印体验。在本篇博文中,我概要介绍 Windows 8 中打印的用户体验和开发者平台,还会介绍您可以如何定制自己的用户体验,以便符合您的应用程序的要求。 通过 Windows 8 应用程序打印 首先,我们来看一下 Windows 8 中的打印功能是如何工作的,然后再来讨论各种不同类型的应用程序如何处理打印作业。 Windows 8 中的打印功能与支持打印的应用程序上下文相关。通过注册“打印”合约,某个应用程序可以支持打印。您可以决定您的应用程序何时支持打印、何时不支持打印。并不是所有的应用程序都有需要打印的内容。例如,如果您正在开发某个游戏,则您可以决定它不需要进行打印。但是如果您正在开发某个航空应用程序,则能够打印登机证则是登机流程的一个重要组成部分。尽管是由您来决定是否可以通过您的应用程序进行打印以及何时进行打印,但是您务必需要考虑客户的期望。如果您的客户希望您的应用程序可以进行打印,则我们建议您令您的应用程序支持打印功能。 要在 Windows 8 中进行打印,您可以从屏幕的右侧轻扫屏幕,以便查看超级按钮。如果应用程序支持打印,则当您点击“设备”超级按钮时将可以看到电脑上安装的所有打印机。当选择您要用来打印的打印机时,将会看到打印窗口,如下所示。 打印流程 打印窗口显示要打印内容的预览和一些常用打印机设置。当我们在规划打印功能时,经常听到人们说,希望能在打印前看到要打印的内容。打印平台支持在打印窗口中显示打印内容的预览,而不是您必须在您的应用程序中以自定义的方式显示预览。打印平台还允许您更新预览,这样您的用户在打印窗口中选择不同的打印机设置时均可以看到打印输出的外观。 为了简化默认打印体验,默认情况下,打印窗口仅显示三个打印机设置:副本数、打印方向和颜色。我们的调研显示,这些打印机设置是用户打印时最常更改的设置。我们显示这些设置,这样用户可以在配置打印作业时快速访问这些常用设置。作为应用程序开发者,您可以控制哪些设置显示在打印窗口中,以便提供最适合您的应用程序的用户体验。还可以定义每个设置的默认值。 所有 Windows 8 应用程序均使用相同的体验来打印内容。因此,当用户知道如何从一个应用程序打印时,也就知道如何从每个应用程序进行打印。这意味着用户不必到处找寻打印功能,也不需要为每个应用程序学习一种新的打印方法。 “打印”合约 您的应用程序使用“打印”合约与打印平台进行联系。您的应用程序提供打印内容,Windows 提供打印体验和基础结构。当您的应用程序注册“打印”合约时,打印功能开始在“设备”超级按钮中可用,令其非常易于访问和使用。 “打印”合约(诸如所有 WinRT API)设计为可以与您选择的语言和 UI 框架配合使用。因此,不论您是使用 HTML 还是 XAML 来布设内容,都可以利用该项功能。如果您希望更多控制您的应用程序打印内容的方式,则可以使用 D2D 或 XPS 技术。 当向您的应用程序添加打印支持时,有两个核心要素需要考虑: 提供要打印的内容。 确定最适合您的应用程序的打印设置。 让我们来分别看一下这两个要素。 提供要打印的内容 当设计您的应用程序时,您需要花一些时间来考虑相应的打印场景。您认为您的用户在具移动性时可能希望随身携带哪些内容?她希望拥有哪些内容的纸质副本以便以后使用或查看?例如,如果您的应用程序捕获照片,她是否希望能在家中打印照片以及装帧照片?想一想您的应用程序应用场景,可以帮助您选择那些可通过应用程序进行打印的内容,可以帮助您为您的客户设计最佳的打印体验。 在您决定要打印的内容后,请花一些时间来考虑应从哪里获得打印内容。第一件事就是要认识到在屏幕上能正常显示的内容可能在纸张上无法正常显示。您需要为每种输出类型考虑对内容进行格式设置的最佳方式。这意味着您要打印的内容可能与应用程序主视图中的内容(也就是屏幕上的内容)不太相同。这适用于所有类型的应用程序,即便是象新闻阅读器这样的简单应用程序也是如此。在屏幕上以列格式显示正常的内容,在纸张上的同样布局下可能不能正常显示。所有这些注意事项都对您如何构建自己的应用程序产生影响,在设计阶段就予以充分考虑,比在后续阶段重新返工进行更改,要容易得多。 您还可能希望考虑如何将打印功能契合到您的应用程序工作流。在许多应用程序中,打印功能只是一个菜单项。例如,用户可能希望在欣赏照片的同时打印照片。在这种情况下,“设备”超级按钮就是指导用户开始打印的最佳位置。也就是说,增加在应用程序内启动打印的方式不是一个好的办法;只需要使用超级按钮打印即可。另一方面,也存在一些情况,就是打印是某个应用程序整体工作流程的重要组成部分。比如用来打印收据的收银应用程序。屏幕上的视图可能正在确认订单,并感谢客户,还有一个“Print receipt”[打印收据] 按钮,可直接帮助用户进行打印。当用户点击“Print receipt”[打印收据]…

0