ALM Rangers
通过 ALM 就绪内容的“寻宝”之旅
在本文中,我们介绍示例 Windows 商店 app,ALM 准备宝藏图,并分享设计、 编码和测试经验的 Visual Studio ALM 别动队在构建应用程序。 它旨在提供主目录中的内容可帮助开发人员成为精通应用程序生命周期管理 (ALM) 的做法。 ALM 别动队是一个促进 Visual Studio 产品组、 Microsoft 服务和 Microsoft MVP 社区之间的协作处理缺少的功能,通过删除通过受体阻滞剂,并发布最佳做法和指南,基于现实世界的经验的专家组。
我们做了什么,为什么?
我们得承认:我们爱 Visual Studio 和 Visual Studio 团队基础服务器 (TFS)。 Microsoft 会产生一些最佳的软件开发工具。 我们不只说,因为我们为微软工作 — — 我们认为这方法早在加入本公司之前。 这些套件提供令人难以置信的数量的功能,但可以证明令人生畏的新用户。 开发人员如何开始学习使用这些工具? 这个问题本身向我们提出以稍有不同的方式。
ALM 别动队出席 TechReady 会议通常具有数量的会话描述如何提高微软开发工具的知识。 会议甚至举行交互式会话参与者那里可以提供反馈到建筑这些产品的内部组。 我们发现这些是令人兴奋的机会,为开发人员和顾问。 后加入 ALM 护林员团队,我们开始探索发布的指南和很快意识到,有大量的内容,以消化 ; 我们不知道应该从何处开始学习。
我们真正想要的东西是一种资源,帮助我们成为精通 ALM 的做法。 我们开始建立 ALM 准备宝藏地图 Windows 商店 app 成为专家们在他们的旅程导致用户通过材料。 图 1 显示您我们的工作的结果。 它包含五个类别,每个都有多个主题的研究:
- 准备
- 快速简介
- 指导
- 模具
- 讲习班
图 1 宝地图 Windows 商店
这些领域包含指南、 动手实验室和视频,使其尽可能为用户轻松地拾取他们需要迅速和有效的技能。 导航的材料特别好在新启用触摸的设备如 Microsoft Surface 上工作。
为了提供最佳的体验,我们得到了专家的 UX 设计师和高级开发人员构建应用程序的帮助。
ALM 准备宝藏图解决方案:UX 设计掘金
制造一个良好的第一印象 宝藏图瓦 (见 图 2) 是吸引眼球和明亮,用来象征砂橙色背景。 立即,用户可以看到该应用程序的主题 — — 这是明确的棕榈树和在通向那里"的 X"标志着宝藏的现场。 应用程序标题是清晰可见的瓦片。 确保该图块描述了您的应用程序是什么其实关于创建一个良好的第一印象。 你想要的最后一件事是用户打开您的应用程序,并对他们为什么使用它以及它可以如何帮助他们混淆不清。
图 2 宝藏地图 Windows 存储应用程序平铺
我们已经利用初始屏幕 (请参阅图 3) 显示更多的应用程序的个性,并帮助确保好发射经验。 寻宝图初始屏幕呈现珍重,这也是一种平稳、 抛光加载经验扩展的路径。 它是整齐和简单的设计,反映出用户体验将会如何。 此外,独特的屏幕可以帮助加强品牌。
图 3 宝藏地图 Windows 存储应用程序闪屏
主页 — — 藏宝图本身 — — 出现一旦应用程序已加载。 再次,我们清楚、 内容重点设计立即确认该应用程序的目的。 我们想要使此页面的神奇,所以用户想要探索该应用程序的其余部分。 主页是旅程开始和位置,用户一眼就知道这将一段旅程。 标题是用于导航,源和我们"chrome 上的内容"的设计,因为他们站出来。 应用程序的内容被强调通过删除非功能性的任何元素。 要快速查找信息的任何人都可以在屏幕上查找的所有链接,而不必浏览该应用程序,为所有类型的用户提供了极大的体验。
有时会被忽视,但关键 Windows 8 界面跨其所有应用程序使用一个网格系统的原则。 这一原则促进一个干净、 整洁的设计。
寻宝图 app 雇用我们到处上主页的网格系统,结果是,内容是高度可见 — — 更多的内容,减少铬。 此项内容在 chrome 原则之上是更独特的 Windows 存储区的应用程序样式,原则之一视觉统一,有助于伟大的用户体验 主页是唯一页,则此规则的一个例外。 我们正在塑造之旅和一个海盗主题,我们就不会一直能够实现无的可视表示形式。
版式有时被忽视,很多人都不知道多少,它可以加强 app 的品牌。 使用的字体,正确和一致地有助于实现清晰并提供干净、 整洁的外观,使应用程序更易于阅读,因此使用。 推荐的字体是文本的濑越 UI (主要用于用户界面元素 (如按钮)、 宋体 (用于阅读和写作,如电子邮件) 和 Cambria (对于较大块)。 我们濑越 UI 用于除标题以外的所有文本。 对于那些,我们用行楷来建立一个更强的主题 (见图 4)。 因为我们想要的应用程序的外观符合基于纸张的地图,因为这有助于加强海盗主题,我们不要打破这里,字体的规则。 所以,在这种情况下,它不会工作很好。
图 4 我们在宝藏地图 Windows 存储应用程序中使用的字体
无缝和流体的导航是关键的是要提供的易用性和巨大的用户体验 推荐两种形式的导航模式:分层的系统和平板系统 (见图 5)。 大多数应用程序所使用的等级体系。 它是最常见的将是最熟悉类型的导航向多个用户。 它也是最好的制度,以创建该流体的感觉,但仍然是简单易用。 平面系统主要用于游戏、 浏览器或创建文档的应用程序,用户可以只向后转并转发同一层次级别。 寻宝图应用程序使用的等级体系,和我们相信它也使用它。 主页将归类为中心,和每一节创建的第一个层次分支,从每一节然后将创建另一个层次结构的分支。 例如,从主页,用户可以导航到准备部分,其中用户可以浏览其他准备款。
图 5 推荐导航模式
可用性 ,评估 app 的 UX 改善设计,使该应用程序是很重要:
- 简单易用
- 给用户更有价值 — — 例如的功能它可以提供
- 更适宜使用
评估您的设计为您提供了该应用程序具有优秀的用户体验和用户会发现它有用的、 可用的和可取的信心。
我们那么如何评估应用程序的用户体验? 有很多的方法来做到这一点,但两个常见原因是自我评估和认知的演练中,如中所示图 6。
图 6 评估应用程序的用户体验
自我评估 | 认知演练 | |
为什么使用 | 这根据您想让用户实现或查找的目标。 它可以确保设计是与您的主要意图的轨道上。 | 这是有点更多地围绕特定的任务,用户可能希望实现,例如,要查找有关信息"VM 厂模具及指南"。 |
应用 | 这是一个好主意,要做自我评估每个冲刺 (sprint),或当已达到每个目标 ; 他们最后 30 分钟的时间。 | 在设计过程中,并通过每个冲刺 (sprint)。 |
有四个将帮助在 app 的自我评估,以及 app 的认知演练的成功标准。 它们是:
- 伟大的人:什么是 app 在伟大? 联络点的视觉效果是什么?
- 可用:什么用户应该能够明白、 知道或做更成功,因为 app?
- 很有用:你有什么想要为值用户?
- 可取:您想要取悦用户,或使它们爱这款应用程序的哪些部分?
我们使用的自我评估和认知的演练。 自我评估是在我们每周的立场 ups 进行审查和进行通过每一次冲刺。 进行的认知演练了在设计过程中,通过每个冲刺 (sprint)。 评估我们的 app 的 UX 帮助我们理解的愿望和情感连接到用户可以确认的经验。
总结 UX 设计:
- 请确保该图块描述了您的应用程序是怎么回事。
- 创建唯一的闪屏,来加强您的品牌。
- 编写具有明确的重点内容。
- 使用推荐的网格布局来创建一个简单和干净的设计。
- 别忘了排版。 使用推荐的字体,如有可能,濑越 UI、 宋体或 Cambria 等。
- 有一种明确的导航模式。 从分层系统或扁平的系统中进行选择。
- 评估您在整个开发周期的应用程序的可用性。
编码的珠宝
编码开始之前,我们提出一系列的编码为这一项目的目标。 这些目标成为口头禅我们如何设计和开发基本代码。
- 适应性:要求可以更改、 可添加或减少,功能和设计可以支持完全不同的东西扔掉。 适应性是游戏的名称 !
- 简单:简单是重要许多优势,在软件设计中,特别是可维护性和 fixability。
- 可测试性:质量保证必须是每个项目的高度优先事项和基本代码必须允许有全面和"简单"的测试。
- 性能和流动性:从一开始,这款应用的用户体验必须为正数。 App 必须及时地显示信息、 总是必须响应用户输入和不能落后。
- 团队环境:App 是很少建立由个别参与者或甚至个别的团队。 我们将确保 app 建成可以缩放到许多更多的团队成员的方式。
所以现在,我们有我们定义的目标,在世界做我们如何实现编写一个应用程序,在这么短的时间 — — 工作部分时间 — — 不仅满足功能要求,但也以及我们非功能性要求的同时呢? 幸运的是我们,这轮建成了之前和建设我们的 app 的是将我们的 app 应用行之有效的模式和做法的问题:
- C# 和 XAML:我们决定使用 C# 和 XAML,主要是因为在这个项目上派遣大多数都是熟悉这种方法。 这包括自己的语言,以及模具和对他们的支持。
- 模型-视图-ViewModel (一直坚持使用 MVVM):这是一个为您的演示文稿层分开您从您的对象的业务逻辑的模式。 我们选择这一特定模式,因为 C# 和 XAML 技术本身很好它。 但更重要的是,用一种单一模式,我们就可以开始凿掉在我们非功能性要求。 一直坚持使用 MVVM 最积极影响的目标是适应性、 可测试性、 团队环境和简单性。 适应性得到改进,您可以在您的应用程序的功能部分的任何转乘。 也许已经完成新的演示文稿的特定视图模型,并可以立即而无需更改任何其他代码替换它。 因为每个核心功能代码段分隔成自己个人的责任,哪些手段测试可以直接针对那些编写和自动化提高可测试性。 因为您有一组定义的合同之间应用程序的移动部件,允许团队与另一个并行工作,提高团队环境。 简单得到改进,每个运动部件是其自己定义的移动部件,在以特定的方式进行交互。 详细信息,请参阅"什么是 Microsoft 测试管理器 2012 年新"在 msdn.microsoft.com/magazine/jj618301。
- 资源:一直坚持使用 MVVM 的精神和分离的角色和可更换部件后,我们决定为我们的字体、 按钮和其他类似的设计元素的定义添加资源。 这有助于改善团队环境、 简洁性和适应性。
- 但我们有关性能和流动性做了什么呢? 我们随后长时间运行进程的等待异步/模式。 这是开发人员可能在构建应用程序,Windows 存储区中挣扎,但它并不一定要的领域之一。 幸运的是,Windows 存储应用程序使用 C# 和 XAML 的电源来自 Microsoft.NET Framework 4.5,使您可以方便地包括异步工作负载分配到您的应用程序通过这种模式。 如果它那么容易做,为什么做乡亲挣扎与它? 这个问题的答案通常归结为使用逻辑,是长时间运行而不提供现成的由.NET 框架。 此示例可以逻辑来计算基于复杂的数学图表的绘制点。 A 充分理解异步和等待是提供流体、 高性能的应用程序的关键。 有关详细信息,请参阅"异步性能:了解异步费用和等待"在 msdn.microsoft.com/magazine/hh456402。
其他考虑因素包括:
- 触摸语言:从发展角度来看,这不是任何更容易。 几乎每一个外框控件中所有您预期的方式支持触摸。 从编码的角度来看,这是应用程序生成的最容易的部分。
- 魅力:交互的魅力也是简单的。 注册这些在你的 appxmanifest 和到您想要注册,如搜索或共享的特定魅力为每个页面添加在事件处理程序。 我们已经没有魅力所处理的问题。 他们运作良好,像魅力应该工作。
- 瓷砖、 闪屏和方向:所有这些被处理在 appxmanifest 中,然后通过在应用程序级别的应用程序中的事件挂钩。 它是简单的和一切详细的示例代码中。
如何所有真正运作在这里是如何在实践中解决事情:
- 一直坚持使用 MVVM 命令:一直坚持使用 MVVM 非常棒的理论。 然而,在现实中,证明从通常 Windows 演示文稿基础 (WPF) 和 Silverlight 开发,特别是为执行命令,因为我们旧的样本没有工作稍有不同。 幸运的是,命令 <T> 是非常容易实现在新的框架中,可以看到在我们的示例应用程序中。 但我们苦恼没结束与命令,因为 ListViewBase 项目没有附加的命令属性 ! 我们决定解决这用于演示目的的两种方式:
第一,我们决定要解决此问题,使用一个未使用的属性:
<ListView Grid.Column="2" SelectedItem="{Binding Selected,Mode=TwoWay}"
向它是绑定的返回"null"并不会引发任何异常 (即使您打开所有异常),这很好,但是关键的属性是集合中。 在组中,而不是设置什么,我们使导航调用并作为参数传递的选定项的索引。
第二,我们决定创建附加的依赖项属性的类型 ICommand。 示例的实现是在类中"ItemClickCommand""MVVMSupport"文件夹内。
- 多个视图状态导致大规模查看文件:我们查看文件变得非常大,更难于管理,主要是由于多个视图状态。 不同的布局,每个视图状态一般需要,而且你甚至可以有不同的看法,为不同的显示尺寸或更改维度,等等。 我们的做法是将其分为多个的.xaml 文件,使用每个状态的每个视图的一个.xaml 文件。 例如,如果我们有一个叫做"HomePageView"的视图,我们会在充分、 捕捉和填充的文件夹,每个在其状态的文件夹内有"HomePageView.xaml"。
- 适应在现实世界中:这是一个好的故事。 我们制定了我们的 app 大部件后 — — 切换数据服务提供商、 交换教科文组织统计研究所和添加新魅力相互作用对所有适当的地方 — — 适应不断变化的需求变得一块蛋糕。 问题可以很容易地追踪,和很多规划还清了,因为设计师可以并行工作,与发展商和赞助商。
总结这一节,从编码的角度来看,Windows 存储应用程序非常简单正确制定。 经过几个预定义的规则,心态和模式允许您快速创建一个很好的应用程序。 应用程序视图状态、 应用程序生命周期状态、 魅力的互动、 流动性、 确保将您的代码中,使您的设计团队来循环设计,主要关注问题。 有关详细信息,请参阅 dev.windows.com。
测试和验证解决方案的质量
我们从一开始定义的核心验收要求之一就是要提高样本代码质量,是我们的总体质量先行尝试程序的一部分 (见 aka.ms/df_tooling)。 严格的质量盖茨地缘政治、 命名空间、 代码分析和 StyleCop (见 stylecop.codeplex.com) 法规遵从性帮助我们制造更好的解决方案,尽管只是一个示例。
测试不应事后才想到的并与样品一样重要,这一点与关键任务解决方案。 强制执行的代码的质量,并管理用户的期望和要求,从一开始,而不是面对数以百计的法规遵从性 bug 和愤怒的测试人员和有迟来的质量改进周期内处理的功能和代码改动,以容易。
因为目的是快速示例解决方案中,我们主要被通过测试策略着重行为作为一部分的系统和用户的验收测试 (用户验收测试) 的"黑箱"。 前者是手动执行的团队,重点放在预期的功能和非功能性要求和探索边缘情况在内部被理解。 社会应邀协助用户验收测试验证、 执行探索性测试基于真实场景和期望,并发掘 bug 缺失、 不切实际,和不清楚的功能。
如图所示,在图 7 (这里对应图中的红色圆圈数字数字),与我们通常使用 Microsoft 测试管理器探索性测试功能 (1) 和 (2) 对评价上表面类型设备,捕获的示例解决方案的模拟器详细的意见 (3) 和记录测试会话 (4) 供将来参考。
图 7 探索性测试
在将来,我们会认真考虑结构更加合理的测试用例的定义和使用 Microsoft 假货来帮助我们实现单元和冒烟测试。 这将使我们能够自动地连续验证功能变化和相关的代码更改。
接下来会怎样呢?
我们将演变 ALM 准备宝藏图的应用程序,和我们正在考虑为准备参考资产在线更新功能。 有关详细信息,请参阅"下站在 Visual Studio ALM 别动队"在 aka.ms/vsarunderstand; "Visual Studio ALM 兵兵解决方案"在 aka.ms/vsarsolutions; 在 ALM 准备宝藏图示例代码 aka.ms/almtreasure; 与应用程序本身在 Windows 存储在 aka.ms/vsartmapapp。 我们欢迎你坦率的反馈和想法 !
Anisha Pindoria 是与 Microsoft 咨询服务在联合王国的 UX 开发顾问。
Dave Crook 是开发人员与 Microsoft 咨询服务东地区,在他的工作重点是 Visual Studio 和 Team Foundation Server 顾问。
Robert Bernstein 是与 Microsoft 咨询服务全球公共部门网络安全小组高级程序员。
Robert MacLean 一个软件开发者依偎在一个典型的开放式发展办公室在昆山日高威泰 (bbd.co.za)。
Willy-Peter Schaub 是与 Visual Studio ALM 别动队在微软加拿大发展中心的高级项目经理。
衷心感谢以下技术专家对本文的审阅:帕特里夏 · 瓦格纳 (微软)