最近很多人问office2007里怎么找不到OWC了,也就是OWC12了。前天又看到鲁宝春问“在office2007中还有owc12 这个组件么?”。我心情沉重的告诉你们,据可靠消息,office2007里面是没有OWC12的。这么优秀的组件就这样告终了,因此在这里缅怀一下这个优秀的组件和展望将来。
OWC全称是Office Web Components,主要提供Spreadsheet, Chart, PivotTable®, and Data Source Control等组件。OWC能将部分Office的功能扩展到Web上,是一个优秀的服务器端图表引擎,具有与Excel同样强大的图表绘制能力。能够在服务器端动态生成GIF或JPG格式的图表。
很多朋友都说以前Windows桌面应用程序下做数据图形描述(如饼图、柱形图),有丰富的图形库和绘图组件,但是到了Web程序中,相应的图形库和绘图组件很少,头都炸了。我没有Windows桌面应用程序下做数据图形描述的经验,但是在Web程序做数据图形描述也经过痛苦的过程。
一开始比较傻,直接使用System.Drawing的GDI+,用这个做简单的饼图、柱形图很可以,做复杂的图表就惨不忍睹啊,那代码的耦合性,复杂度真叫高,而且当时刚入行,水平较难,还不晓得设计模式是啥,结果弄得经常加班还头痛。现在回想,使用设计模式和经过合理的抽象复用,居然能减少代码的耦合性,但是复杂度和开发成本还是令人生畏。
后来学乖了,上google找现成的图表控件,不过找到的要么功能很强,但是要破解,这怎么能拿出去国外销售呢?要么就是开始用着功能不错,但是用着用着发现bug一堆,技术支持少,用嘛,bug fix 不了,用户骂,不用嘛,之前做得这么多努力都要丢弃,上了贼船不知道怎么下来好。也许微软宣传不够吧,当时我还没有能在众多搜索引擎上找到OWC。
直到2006年5月,微软广州负责office服务器软件销售的李强来到公司(德克赛诺)宣传project server。李强优秀的演示和我打破沙煲问到底的精神使我开始领略到office的强大功能,开始走进office的海洋。在摸索中我发现了OWC。当时OWC的资料开始多了,我开始使用OWC开发Web数据图形描述,虽然也遇到过挫折,但是总体来讲OWC是最适合我的工具。因为OWC能在微软官方网站免费下载,稍加处理就能应付国外客户。OWC在google的资料也多,出了问题都能解决。而且毕竟是微软出品,bug还是比其他免费的东东少。而且后来越玩越爽,最搞笑的是看到网上有很多幽默的excel都是有图片的,我的美工特差(还曾经被某位同志善意批评过,哈哈),程序思维特好,于是居然想到用OWC来做这些本来应该是用Photoshop去做的事情。
我用OWC比较晚,是从office2003开始用的,刚用得上手的时候,office2007来了,突然发现office2007里面没有OWC,当时我参加了office2007的领航计划,能得到微软上海全球技术支持中心专家的技术支持。于是直接问微软的同志,微软的同志发了个msdn上的link。具体link因为事隔快一年,早已经不记得了。看了这个link。终于知道office2007里不会再有OWC,因为微软有一个更灵活的技术替代OWC。这个技术就是SharePoint Server 2007里的Excel Services。
当时第一反应就是终于明白微软为什么关于OWC的技术支持这么少,只有几个客户端和ASP例子,连ASP.NET的例子都没有。新闻组里面主要讨论的也是客户端的应用。原来微软早有预谋要用Excel Services来替代它,所以不打算对OWC放太大的精力。Excel Services倒是比OWC好很多,不过一定要装SharePoint Server 2007 Enterprise。成本自然比OWC大很多,环境也由以前ASP.NET缩小到SharePoint Server 2007 Enterprise了。
OWC就这样告终了。鲁宝春和其他曾爱好和使用过OWC的同志,我的心情和你一样。