用 Microsoft Office 做企业应用的富客户端

  • Mark Figley
  • 郭晓刚

2008 年 7 月 16 日

话题:架构语言 & 开发

Ted Neward干脆利落地扒下皇帝的新衣总是一件赏心乐事。这种情况经常出现在他向 Java 社区解释“寻找方案架构的时候如果自动忽略微软的技术会是多么大的损失”的时候。上周 Ted 写了一篇短文介绍Bruce Wilson 写的一篇讲述用 Microsoft Office 充当(非常强大的)富客户端的文章。简短介绍 Wilson 的文章之后,Ted 直奔主题:

有意思的是,他所提出的大部分想法在各种后端——Java 后端、Ruby 后端、.NET 后端——之上都很容易实现。Office 是多数最终用户能够马上理解的工具(无论你是否赞同微软的用户界面隐喻,也不管你是否喜欢 Office 是全世界安装得最多的软件包这一事实),而且 Office 软件里已经内建了很多支持功能。

我觉得“普及”应该是富客户端平台(乃至任何客户端平台)最重要的特征。虽然 MS Office 仍然不如浏览器普及,但两位作者所说的是企业自动化软件开发,也就是一些从来都不会在企业之外使用的内部软件。而对于大多数企业来说,MS Office 是非常普及的。

Wilson 的文章一开头说的比较抽象,但随着主题展开,他提出了一些很有意思的观点。下面是从文中撷取的一段,为 Office 应用做了有力的注脚:

我们公司对自己提高“用户体验”的能力很自豪。从本质上说,提高用户体验意味着我们要调整软件与用户接触的部分,使之更贴合用户的需要。近年来,我们观察到系统开发的趋势是将更多的后端向更多的用户开放,尤其是将一些原来只允许数据库专家访问的信息向商业用户开放。我们还惊讶地发现,人工重新输入信息非常常见,即使大公司也是如此。解决这两种情况通常都涉及到 SOA(Web Services)、OBAs 和相关的微软技术。

我注意到大多数内部开发的企业应用都完全不关心用户体验。为 Web 应用创造一种自然而高效的用户体验是可以做到的,但同时也是昂贵的,而且常常不符合经济利益的考量,因为“足够好”也能完成工作。将解决方案建立在一套用户已经熟知的工具上,并且利用用户的熟悉来以更低的成本提供更直观的用户体验,这个观点相当合理。

但我很疑惑,这么合理的方案为何实行的企业那么少呢?我决定问一下 Ted 的想法。下面是我的问题:

Q:“Ted,这个问题你已经说了好几年了,但我们好像还在提出想法的阶段踏步,仅仅是将这个概念传播给了更多的 人。你觉得这像不像几年前 XFroms 的情况?大多数人不久就永远放弃了 XFroms。我的意思是说,当时我们都觉得 XFroms 明显会是胜利者,它比 HTML forms 好了。它将会胜利——肯定会胜利。O'Reilly 连书都出了。但结果我们大眼瞪小眼‘到底怎么了?为什么没成功?’服务后端和 Office 前端结合绝对是威力强大的,但其接受程度最多只能算是边缘。肯定会有人问你,‘为什么人们没看出来那么明显的事情?’”

不出所料,Ted 的回答既深刻又引人深思,所以我干脆不加编辑直接把他的回答列在下面:

我想人们已经看出来那么明显的事情了……尤其那些已经开发了 Office Business Apps 五、六年的人。:-)

如果你到 TechEd IT 上看看,可以遇到很多这类人,只不过他们不是传统的开发者,不是我们从 “企业”、“计算机科学”的角度所想像的开发者。这些人微软称之为“信息工人”,他们在技术上最多只是中等程度,但在业务上是极精明的。他们会以各种方式使用 Office 来解决问题。(正是这些人的 Access 数据库最终“扩展”成了 Oracle 和 SQL Server 支撑的 Web 前端企业系统。)有时候我们想弄清楚一个应用或者系统的业务规则,这些就是我们要找的人。

坦白说,把 Office 用作富客户端的想法比 XForms 那一套有个优势,就是它已占有的市场份额。Office不会很快消失(给我举个能达到 Office 市场份额十分之一的竞争者),只要 Office 没出局,用它做富客户端的想法就会生存下去。我要做的事情是把很多开发者看待 Office 时那种“这不是真正的编程”的成见赶出去。

如果你想要一个真正有意思的预测,我认为 Office 会比 SOA 活得长……就像它已经比“对象”和“C/S”活得长一样……这些话传统开发者可爱听。

如果你已经被勾起了好奇心,可以继续观看 InfoQ 对 Ted 做的访谈,其中亦讨论了这方面的一些想法。

查看英文原文:Microsoft Office as a Rich Client For Enterprise Applications

架构语言 & 开发