SOAOffice和iWebOffice、NTKO的比较及其优势
近年来,市场上出现了一些能够在Web页面调用显示Office的控件或中间件产品,这让Web页面不能处理常用的Office文档的历史一去不复返,给 大家带来了很多便利。笔者先后用过NTKO、iWebOffice、SOAOffice这三种比较常见的产品,其他的例如WebOffice等相对较差, 这里就不讨论了。最近我们集成应用了SOAOffice,感觉不错,总结了一下经验心得,给大家分享一下。
笔者开发软件用过很多控件、中间件,当然还是国外的好产品很多,国内能上台面的没几个。最近用了SOAOffice,才发现这个中间件的品质、性能居然达到了国际水准,让人不敢相信这是国产软件,看来国产软件还是有希望的。
SOAOffice 中间件是北京科翰软件为微软OFFICE量身打造的Web中间件,是Web调用Office、存取Office数据的中间件。SOAOffice中间件由服务器端数据组件和客户端显示控件构成。呵呵,援引官方的定义。
iWebOffice、NTKO是一种普通文档控件,主要实现Office文档的在线编辑保存功能,不含Office内容数据存取、导入导出等功 能。由于iWebOffice、NTKO相对于SOAOffice产品来说都是上一个时代的技术架构,功能也大同小异,以下仅以iWebOffice为代 表展开评论。
SOAOffice的研发始终以开发人员和最终用户为中心,是一种真正贯彻“以人为本”思想开发出来的中间件精品。从结构上看,SOAOffice 由服务器端数据组件和客户端显示控件构成,开发人员只需在服务器代码里调用SOAOffice,即可全面控制Office文档,免去了开发人员应对复杂的 javascript脚本的烦恼,符合流行的代码分离原则的Web编程架构。从编程上看,SOAOffice提供的服务器组件接口完全遵守微软命名规范, 接口简单,对象层次清晰,而复杂的控制逻辑在SOAOffice中间件内部实现,开发人员只要简单调用即可获得强大功能。从功能上看,SOAOffice 全面提供涵盖Office最大应用范围的功能,开发人员无需学习研究复杂的Office编程细节。从界面看上,SOAOffice提供最大的灵活性给开发 人员,例如自定义菜单、自定义工具栏、自定义出错信息框、无版权信息等,开发人员能够做一个符合自己需要的个性在线Office编辑器。从扩展上看,在 SOAOffice的基础上,开发人员可以方便地封装自己的SOAOffice业务模型和框架。从升级上看,SOAOffice紧密结合当前客户的最新需 求和微软Office的版本变化,及时推出SOAOffice的升级。对于最终用户,SOAOffice力求用户的操作简洁,界面友好生动,例如全屏最大 化、进度提示、键盘手写同步等。
SOAOffice中间件是一个积极发展中的软件,版本更新较快。
SOAOffice中间件和普通的Office文档控件区别很大,不是同一个软件时代的产品。iWebOffice现在只到2006版,思想还停留 在2002年之前的前后台混合编程时代,和现在功能强大的Visual studio.NET、Eclipse、Myeclipse等Web开发工具的Web编程方式格格不入。
SOAOffice和iWebOffice、NTKO的区别就好像ASP.NET和ASP一样,微软致力于发展ASP.NET,而淘汰落后的ASP 技术。因为ASP.NET不但功能强大,而且其编程语言C#非常容易上手、前后台代码分开、架构清晰,大大节约了WEB软件系统开发的工作量、提高了软件 生产率,所以成为了目前主流开发语言之一。而ASP之所以落后,就是因为其混乱的编程架构,前后台混合编程,还有其低效率的脚本执行速度,都使得ASP开 发人员越来越力不从心。
SOAOffice中间件的技术架构代表了当前Office中间件、控件的技术发展方向和趋势。
对于开发人员
1. 结构
SOAOffice是一种名符其实的微软Office中间件平台:拥有完备的服务器组件和客户端显示控件,使用标准通用的HTTP协议来上传下载文 档,不但能够在线打开编辑Office文档,而且还能结合数据库导入导出Office文档内容数据,从而构成了完整的Office中间件系统。
iWebOffice仅仅是一个客户端控件,没有服务器端数据组件部分,编程调用主要依靠客户端HTML中复杂的javascript来实现。通讯 协议采用的是自定义传输协议,传输不稳定,容易出现丢包、通讯中断等问题。无法实现服务器端Office文档数据的导入导出,也无法利用 Word/Excel作为客户端表单提交用户输入。
2. 编程
SOAOffice提供标准的.NET和Java组件,开发人员只需在服务器端编写简单的C#或Java(包括ASP、PHP等)代码即可调用 SOAOffice的所有功能。非常容易上手,用起来十分简单,再不用去编那些繁琐的javascript脚本,节约大量开发工作量。
iWebOffice文档控件只能在Web页面里的HTML部分写复杂的Javascript脚本来调用,服务器代码中的 iDBManage2000和客户端代码混杂在一起,导致逻辑混乱、不清晰。而且由于iWebOffice当初设计架构的不合理,导致一个简单的调用都需 要编写冗长代码实现。
3. 功能
SOAOffice除了提供Word/Excel动态数据填充,Word/Excel数据导入导出,Web报表、Web表单提交,Word /Excel/PowerPoint等Office文档的在线打开、编辑、保存,权限控制,只读控制,数字签名等功能外,还给在线办公内置了强大的支持功 能:强制痕迹保留,手写批注,圈阅,手写签名,电子印章、数字签名、模板套红、一键套红、PDF在线转换、PDF在线浏览等。
SOAOffice提供的Word/Excel动态数据填充,Word/Excel数据导入导出,Web报表、Web表单提交功能是 SOAOffice中间件独创的重要功能特色。开发人员只需在服务器端代码里简单调用SOAOffice,就可完成上述功能。服务器端不用安装 Office,也不用Office自动化技术。SOAOffice填补了国际上服务器端免自动化Office并且实现在线Office数据导入导出的技术 空白。
iWebOffice只提供Office文档的在线编辑保存、痕迹保留,手写批注,模板套红等在线办公功能。iWebOffice只是 SOAOffice内置的一个在线办公模块。即使仅比较在线办公模块这个功能,SOAOffice的质量、性能也比iWebOffice、NTKO等高出 一个档次,好用得多。
4. 界面
SOAOffice的界面元素都能由开发人员自定义,例如自定义菜单、自定义工具栏、自定义出错信息框,自定义标题栏,自定义保存方式,选用多种Vista水晶界面风格等。
iWebOffice只能自定义菜单、自定义工具栏。
5. 调试
SOAOffice能够显示丰富的、详细准确的HTML格式的调试信息框,给开发人员迅速排除编程错误提供了有力的支持。
iWebOffice、NTKO等不具备。
6. 扩展和升级
在SOAOffice的服务器组件基础上,开发人员可以方便地封装自己的SOAOffice业务模型和框架。
iWebOffice只能在客户端调用、更多的业务逻辑需要写复杂的javascript脚本实现,因此很难和服务器端业务逻辑无缝封装,不具备编程扩展能力。
对于最终用户
1. 界面
SOAOffice拥有类似Vista的水晶界面风格,当前IE窗口内的全屏切换,各种操作进度条提示,友好的HTML格式信息提示框、漂亮的软件界面,无一不是人性化的体现。
iWebOffice界面比较单一,没有做最基本的界面设计工作,与当前的WindowsXP和网页风格明显不协调。
2. 操作
SOAOffice力求用户的操作简洁,界面友好生动,例如全屏最大化、Web化保存按钮、键盘手写同步等。
iWebOffice的操作不够人性化。例如在手写批注时,iWebOffice要重新切换到一个新窗口,而且还要用户等待其转换全部Word页之后才可以批注,用户切回编辑状态时,看不到手写批注。而且如果用户增加删除段落会导致原有的手写批注移位、错行。
3. Office兼容性
SOAOffice兼容Office2000以后各Office版本。即便局域网内安装多种Office版本也无需担心。
iWebOffice兼容性有限,尤其Office2007。
4. 软件体积
SOAOffice客户端控件使用标准C++开发,体积小,200K左右,非常适合Web环境下使用。
iWebOffice控件使用Delphi开发,体积大,高达1.38MB,功能少,反应速度慢,运行效率低。
5. 稳定性和可靠性
SOAOffice经过多年用户的考验,稳定性和可靠性稳居业界第一,拥有良好的口碑。
iWebOffice自2006版以来,几乎没有更新,稳定性和可靠性差强人意。