作者:陈希章 发表于 2017年8月6日
离上一篇Office Add-in的文章已经过去了一段时间,期间有去年Office 365 Asia Devday & Hackathon的二等奖获得者闫晓迪写了Office365开发系列——开发一个全功能的Word Add-In ,另外我也写了两篇有关人工智能方面的文章
我一直在思考怎么为大家讲解Office Add-in开发,一方面确实需要实例(所以我们需要更多的闫晓迪站出来),另一方面来说,我觉得从一开始就讲解一些设计规范和最佳实践可能对大家会有较大帮助。
当然,实际上我也没有非常丰富的Office Add-in开发经验,这方面还需要有时间和案例的积累。所以这一篇文章的主要内容都来自于官方的手册,我稍微做了一些整理,增加了少量我个人的建议。如果希望查看英文的版本,请访问:https://dev.office.com/docs/add-ins/overview/add-in-development-best-practices。
这个原则之所以放在最前面,是因为它要回答“你为什么需要开发这个Office Add-in”的终极哲学性问题。
下面几个最佳实践是比较适合关注的
我要补充的一两点我的理解:一个好的Office Add-in因为提供明确,并且尽量独特的价值 —— 不要贪大求全,而是因为专注于做好一件事情。同时,用户不应该被要求离开他当前所在的Office 环境,就能完成一些有意思的工作,并且与他本身在Office里面做的工作无缝地融合在一起。这个让我想起在人工智能背景下的Office 365现状和发展趋势 中提到的Tap和Rsearcher这两项功能。
如果你希望将你的Add-in发布到Office Store,还有两个文档可能对你有用
你永远无法改变留给别人的第一印象。这句话同样适合于Office Add-in开发的领域。下面的一些最佳实践或许能让你的Office Add-in给人留下深刻印象,并且愿意长期使用下去。
虽然写了这么多条,但我总结起来可能就是一条:KISS原则用在这里是恰如其分的 —— Keep it simple, stupid —— 如果你让用户思考,你就输了。
使用Add-in Command是非常常见的做法,它可以用来在Office 应用程序中添加Ribbon按钮,也可以在快捷菜单中增加子菜单。点击这些按钮或者子菜单,可以直接执行一段代码(通常是Javascript函数),也可以打开任务面板(Task Pane)以进一步操作。典型的Add-in Command效果图如下所示:
考虑到对触摸操作的支持,应该尽量减少对于快捷菜单的依赖。
下面还有一些具体的建议
值得高兴的一件事情是,微软为开发人员专门提供了Office UI Fabric这一套UX 框架,你可以直接使用Fabric Core Style开展工作,它主要提供了CSS的支持(字体,图标,内置组件等),但也可以结合你熟悉的UI框架使用,例如React和AngularJS。
Office UI Fabric是一切界面问题的解药,与此同时下面还有一些可以参考的最佳实践
确保你的Add-in的用户体验跟Office宿主程序一脉相承。
如无必要,不要添加多余的元素。
为1366*768的主流分辨率优化设计,尽量避免滚动条。
不要使用未经授权的图像(或其他素材)。
使用简单明了的语言。
不要在Add-in做广告。
考虑不同平台的适用性,包括鼠标、键盘和触摸体验。
通过Context.touchEnabled 可以检测到当前是否运行在触摸的模式下。如果在触摸模式下,还有几条参考的建议
增加辅助访问功能。
以前我们当然也讲性能,但如今Office Web Add-in的话,这个就显得尤为重要了,你的Add-in可能会被成千上万的人使用,性能可能成为你的制胜法宝,反过来也可能葬送你所有的努力。
除了一直要将性能放在重要位置,从思想上很重视它之外,下面也有一些具体的建议