今天是Visual Studio 2010正式发布的日子,刚刚看了相关的新闻和介绍,感觉上相比Visual Studio 2008来说,又有了不少新的改变和创新,不管是炒作概念也好,炒作想法也罢,但都是想法设法地为我们这些辛苦的程序员们节省了时间,提高了效率。
在发布会上,似乎更多的时间用来介绍最近最为流行的一些概念,像云产品Azure,还有在Visual Studio 2010中可以使用的敏捷方法等等,这些特性的确很好,但都有个特点,就是更多贴近的是我们这些程序员,这也难免,毕竟Visual Studio 2010本身就是一个开发工具。
然而,我觉得其中还有一个不可忽视的组成部分,那就是VSTO(Visual Studio Tools for Office),这个针对Office开发的工具,从最初的1.0,到后来的2.0,再到VS 2008中的3.0,一步一步地走到现在,已经能够和几乎所有的Office家族中的产品紧密地结合了。
然而,在国内为什么没有太多的人对其关注呢?在寻找答案的时候,我想先讲一件在工作中遇到的小故事。
有一次业务部门需要开发一个抽奖的小工具,要求随机抽出指定数量的中奖号码,并且还要导出到Excel中,以方便打印。本来想要使用VS 2005开发,但是业务告诉我,第二天就需要使用,而此时已经是当天下午1点多了。时间紧、任务重啊!最终我使用Office的开发技术,也就是VBA来实现了这个小程序,花费时间:2小时。结果业务部门使用地非常方便,毕竟他们对于Excel的使用还是非常熟悉的。但是,当我和领导提起这件事儿的时候,他告诉我,等有时间的时候,再做个真正的程序吧。
大家看到了吧,在现实的环境中,很多人并不认为Office开发是真正的开发,因为它不是传统的Winform形式的软件,也不是当前比较流行的B/S模式,似乎只是在Office的基础上修修补补,做出来的不入流的小东西。
然而,我要说的是,这是一种需要纠正的看法,Office开发真的非常重要。
为什么呢?大家想想当前公司中使用的各种软件之中,除了操作系统Windows之外,哪种软件的使用频率最高,公司的人员掌握的最好呢?毫无疑问,答案就是Office系列的软件,可能会包括Word、Excel、Powerpoint等等,这些软件不仅已经形成了一个庞大的家族,不断有新丁的加入,而且在业界已经形成了几乎垄断的地位。
大家还记得几年前Google发布Gmail的时候吧,那是大家都没有想到,现在在其之上衍生出多种软件,已经和Gmail一起形成了一个产品家族。
微软没有像Google一样以邮件为中心,而是以文档工具为中心,围绕着Office的产品,逐渐地形成了属于自己的产品家族。而有了VSTO,更是为扩展这个家族成员的功能提供了非常大的便利,作为程序员,我们不仅可以充分利用Office中现有的功能,而且还可以借助强大的.NET framework,来对其进行几乎是无限的扩展,访问数据库,访问其他软件的接口,访问Web Service等等,有了这些功能,我们可以在Office完成许多之前不可想象的工作。
或许大家还对上面的言论保持怀疑的态度,那么就让我们一起来看下这样的场景。
具体场景:客户投保(保险业)
当前在保险公司中,投保这个环节是非常重要的,因为这就意味着公司能够收入资金了,但是这也是非常麻烦的一件事儿,不信你看这个环节所需要的步骤:
1、代理人和客户商量、为其建议,最终填写好投保单
2、代理人将投保单带回当地的分公司
3、分公司负责人员将投保单发送给总公司
4、总公司将投保单录入到核心系统中
5、对其进行核保等操作,为客户打印保单
简单看来,似乎并不复杂,但是在实际的操作过程中,由于总分公司之间可能有很远的距离,所以投保单需要一两天甚至更长的时间之后才能够进入到系统之中。
为了解决这个问题,有些保险公司采用了扫描的方式,将投保单扫描成图片,然后按照图片来录入。
然而,这样还是有重复的工作,因为客户和代理人一起填写了投保单,而之后负责录入的人员又将所有的信息录入到核心系统中,而且在这个过程中,不可避免会有信息的丢失和出错。
为了解决这个问题,其实我们可以这样来做:
制作投保单文件,可能是Excel格式或者Word格式,代理人和客户一起在笔记本电脑上填写完成。
在这份文档上我们使用VSTO开发Add-in,只需要连接上公司的局域网,然后轻松地点击“上传到核心系统”,就可以按照相应的规则将信息上传到核心系统中。
仔细思考一下,这样做的话,对于每个投保环节,我们大概可以节省两天的时间,可以节省两个人力,还可以大大提高准确率。而代理人学习如何使用这个功能的时间几乎为0,当然前提是他会使用Office,呵呵。
从上面我们可以看出,使用VSTO与Office紧密相连的特点,在某些情况下,可以大大地提高工作效率,节省作业成本,何乐而不为呢?
当然,上述的场景还是非常简单的,而VSTO只不过是OBA(Office Business Application)的一个组成部分,微软基于Office的应用,必定会越来越强大,或许哪天我们使用的OA系统,都可以是完全由OBA完成的呢,让我们拭目以待。