为什么不使用自动化
在Aspose,我们最常听到两个问题:
第一个是你们的产品是否需要安装Microsoft Office才能运行?
简短的回答是不需要。Aspose及其组件完全独立,并且与Microsoft Corporation没有任何关系,也不是经过授权、赞助或以其他方式得到Microsoft批准的。
第二个问题通常是为什么我们应该使用Aspose产品,而不是利用Microsoft Office自动化?
这个问题不能那么容易回答。我们能给出的最简短答案是,有很多理由,最重要的一条是Microsoft本身强烈建议不要从软件解决方案中进行Office自动化。
概述
如上所述,有几个理由说明Aspose组件是自动化的更好替代方案。一些关键原因包括:
- 安全
- 稳定性
- 可扩展性/速度
- 价格
- 功能
以下是对每个关键点的更详细说明。同时请确保访问附加信息部分,其中提供了独立用户评估的链接。
安全性
以下是来自Microsoft文章的直接引用:
“Office应用程序从未打算用于服务器端,因此未考虑分布式组件所面临的安全问题。Office不会对传入请求进行身份验证,也不会保护您避免无意中运行宏,或从您的服务器端代码启动可能运行宏的其他服务器。不要打开来自匿名Web上传到服务器的文件!根据上次设置的安全设置,服务器可以在完全权限下以管理员或系统上下文运行宏,从而危及您的网络!此外,Office使用许多客户端组件(如简单MAPI,WinInet,MSDAIPP),可以缓存客户端身份验证信息以加快处理速度。如果Office在服务器端被自动化,一个实例可能会服务于多个客户端,并且由于该会话中的身份验证信息已被缓存,一个客户可能会使用另一个客户的缓存凭证,从而通过冒充其他用户获得未授权的访问权限。"
Aspose产品非常安全。Aspose组件不会对重要的系统资源构成潜在风险。此外,当文档由Aspose组件打开时,宏不会自动运行。Aspose组件是为了让开发人员创建、处理和保存Office文件而构建的。与Microsoft Office软件包相关的任何风险都不属于Aspose组件。
稳定性
以下是来自Microsoft文章的直接引用:
“Office 2000、Office XP和Office 2003使用Microsoft Windows Installer (MSI) 技术,使最终用户的安装和自修复更容易。MSI引入了“首次使用时安装”的概念,允许功能在运行时动态安装或配置(对于系统,或更常见的是对于特定用户)。在服务器端环境中,这一过程会减慢性能,并增加可能会弹出对话框请求用户批准安装或提供适当安装光盘的可能性。尽管其设计旨在提高Office作为最终用户产品的韧性,但Office对MSI能力的实现,在服务器端环境中是适得其反的。此外,Office的一般稳定性在服务器端运行时无法得到保证,因为它并非为这种类型的使用设计或测试。将Office作为网络服务器上的服务组件使用,可能会降低该机器的稳定性,从而影响整个网络。如果您计划在服务器端自动化Office,请尝试将程序隔离到一个专用计算机上,该计算机不会影响关键功能,并且可以根据需要重新启动。"
Aspose组件经过充分测试,极其稳定。Aspose组件被IBM、希尔顿、读者文摘、美国银行等公司使用,还有许多其他公司。
可扩展性/速度
以下是来自Microsoft文章的直接引用:
“服务器端组件需要是高度重入、多线程的COM组件,具有最小的开销和高吞吐量,以服务多个客户端。Office应用程序在几乎所有方面则完全相反。它们是非重入的,基于STA的自动化服务器,旨在为单个客户端提供多样但资源密集的功能。作为服务器端解决方案,它们几乎没有可扩展性,并且在内存等重要元素上有固定限制,无法通过配置更改。更重要的是,它们使用全局资源(如内存映射文件、全局插件或模板和共享自动化服务器),这可能会限制可以同时运行的实例数,并导致在多客户端环境中的竞争条件。计划同时运行多个Office应用程序实例的开发人员需要考虑连接池或序列化访问以避免潜在的死锁或数据损坏*。*
Aspose组件高度可扩展且速度极快。Office应用程序并非设计为同时被数百或数千名用户使用。然而,Aspose组件正是为了满足这一需求而设计的。我们的组件在单个服务器上表现出色,无论是为单个应用程序提供支持,还是在负载均衡的Web Form上支持企业范围的应用程序。
价格
当应用程序利用Microsoft Office自动化时,必须为每台运行应用程序的计算机购买一份Microsoft Office的副本。许多情况下,应用程序可能需要创建或处理Office文件,但并不要求用户必须拥有Microsoft Office。Aspose提供了非常具成本效益的无版税再分发许可证,允许部署给无限数量的用户,而无需担心许可证问题。
在创建基于Web的应用程序时,重要的是要知道Microsoft Office自动化组件并未针对服务器端解决方案进行定价或授权;因此,没有好的许可证解决方案可用于部署利用Microsoft Office组件的Web应用程序。Aspose也为基于服务器的应用程序提供了非常具成本效益的解决方案。
功能
Aspose组件提供管理Office文件所需的一切以及更多内容。它们的设计理念是让开发人员以最少的工作实现最大的成果。与Office自动化不同,Aspose组件提供许多强大且节省时间的功能。例如,Aspose.Cells允许开发人员将数据从DataTable或DataView直接导入到Excel文件中。Aspose.Words提供了类似的功能,允许开发人员填充Word(即邮件合并)文档。Aspose家族中的每个组件都提供自己独特和强大的功能集。
购买Aspose组件(或类似于Aspose.Total的组件套件)的最佳部分是可以访问我们的开发团队。我们的开发团队意识到如果您的公司需要某个功能,那么其他公司很可能也会需要它。虽然并非所有功能请求都能得以实现,但我们的团队在提供帮助时尽量保持开放和灵活的态度。这种心态帮助Aspose组件变得如此强大。如果您需要额外的功能从Office自动化对象,您被添加的机会非常非常小。