# 为什么不使用自动化

> 

Source: https://docs.aspose.com/slides/zh/java/why-not-automation/
Updated: 2024-11-01


{{% alert color="primary" %}} 

我们在 Aspose 最常听到两个问题： 


第一个是 **您的产品是否需要安装 Microsoft Office 才能运行？** 


简短的答案是 **不需要**。Aspose 和 Aspose 组件完全独立，与微软公司没有关联，也没有得到其授权、赞助或以其它方式的认可。 


通常紧接着的第二个问题是 **为什么我们应该使用 Aspose 产品而不是利用 Microsoft Office 自动化？** 


这个问题不能那么容易回答。我们能给出的最简短的答案是，有许多原因，最重要的一条是 **Microsoft 本身强烈建议不要使用软件解决方案中的 Office 自动化** 

{{% /alert %}} 
## **概述**
如上所述，有几个理由说明 Aspose 组件是比自动化更好的选择。一些关键原因包括： 

- 安全性
- 稳定性
- 可扩展性/速度
- 价格
- 功能

以下是对每个关键点的详细说明。另外，请务必访问 **附加信息** 部分，其中提供了独立用户评估的链接。 
## **安全性**
以下是来自微软文章的直接引用： 


*"Office 应用程序从未打算用于服务器端，因此没有考虑分布式组件所面临的安全问题。Office 不会对进入的请求进行身份验证，也不会保护您免于意外运行宏或从服务器端代码启动可能运行宏的其他服务器。不要打开上传到匿名网站服务器的文件！基于最后设置的安全设置，服务器可以在具有完全特权的管理员或系统上下文下运行宏，从而危害您的网络！此外，Office 使用许多客户端组件（如 Simple MAPI、WinInet、MSDAIPP），这些组件可以缓存客户端身份验证信息以加快处理速度。如果 Office 在服务器端被自动化，则一个实例可能为多个客户端服务，并且由于会话中缓存了身份验证信息，某个客户端可能会使用另一个客户端的缓存凭据，从而通过伪装其他用户获得未经授权的访问权限。"* 


Aspose 产品是非常安全的。Aspose 组件不会对重要的系统资源构成潜在风险。此外，当 Aspose 组件打开文档时，宏不会自动运行。Aspose 组件的构建目标是让开发者能够创建、操作和保存 Office 文件。与 Microsoft Office 套件相关的风险在 Aspose 组件中并不存在。 
## **稳定性**
以下是来自微软文章的直接引用： 


*"Office 2000、Office XP 和 Office 2003 使用微软 Windows Installer (MSI) 技术，以便让最终用户更容易进行安装和自我修复。MSI 引入了“首次使用时安装”的概念，这允许在运行时动态安装或配置功能（对于系统，或者更常见的是特定用户）。在服务器端环境中，这会减慢性能，并增加弹出对话框以请求用户批准安装或提供适当安装光盘的可能性。尽管它的设计旨在增加 Office 作为最终用户产品的弹性，但 Office 对 MSI 能力的实现对于服务器端环境是适得其反的。此外，Office 的稳定性在服务器端运行时无法得到保证，因为它并未为这种使用类型进行设计或测试。在网络服务器上将 Office 作为服务组件使用可能会降低该机器的稳定性，从而影响您整个网络。如果您计划在服务器端自动化 Office，请尽量将程序隔离到一台独立的计算机上，以免影响关键功能，并根据需要可以重启。"* 


Aspose 组件经过彻底测试，极其稳定。Aspose 组件被 [公司](https://about.aspose.com/customers) 使用，如：**IBM**、**希尔顿**、**Reader's Digest**、**美国银行**等。 
## **可扩展性/速度**
以下是来自微软文章的直接引用： 


*"服务器端组件需要是高度可重入的、多线程的 COM 组件，具有最小的开销和高吞吐量以支持多个客户端。Office 应用程序在几乎所有方面都是完全相反的。它们是非重入的、基于 STA 的自动化服务器，旨在为单个客户端提供多元而资源密集的功能。作为服务器端解决方案，它们几乎不提供可扩展性，并且对重要元素（如内存）有固定限制，这些限制无法通过配置更改。更重要的是，它们使用全局资源（如内存映射文件、全局插件或模板以及共享自动化服务器），这可能限制可以同时运行的实例数量，并在多客户端环境中导致竞争条件。计划同时运行多个 Office 应用程序实例的开发人员需要考虑* ***连接池*** *或* ***序列化访问*** *以避免潜在的* ***死锁*** *或* ***数据损坏*** *。* 


Aspose 组件高度可扩展且速度极快。Office 应用程序并未设计为可同时供数百甚至上千名用户使用。然而，Aspose 组件就是为了这个目的而设计。我们的组件在单台服务器上运行良好，无论是为单个应用程序提供支持，还是在负载均衡的 Web 表单上支持一个企业级应用程序。 
## **价格**
当应用程序使用 Microsoft Office 自动化时，必须为每台运行应用程序的机器购买一份 Microsoft Office 的拷贝。许多情况下，应用程序可能需要创建或操作 Office 文件，但不需要用户拥有 Microsoft Office。Aspose 提供了非常 [具有成本效益](https://purchase.aspose.com/) 的免版税再分发许可证，可允许部署到无限数量的用户，且无需担心许可问题。 


在创建基于 Web 的应用程序时，重要的是要了解 Microsoft Office 自动化组件并未针对服务器端解决方案定价或授权；因此，对于部署使用 Microsoft Office 组件的 Web 应用程序，没有好的许可解决方案。Aspose 也为基于服务器的应用程序提供了非常具有成本效益的解决方案。 
## **功能**
Aspose 组件提供管理 Office 文件所需的一切，甚至更多。它们的设计理念是允许开发者以最少的工作获得最大成果。与 Office 自动化不同，Aspose 组件提供许多强大的节省时间的功能。例如， [Aspose.Cells](https://products.aspose.com/cells/java/) 允许开发者将数据从 **DataTable** 或 **DataView** 直接导入到 Excel 文件中。[Aspose.Words](https://products.aspose.com/words/java/) 提供类似的功能，允许开发者填充 Word（即邮件合并）文档。[Aspose 家族的每个组件](https://products.aspose.com/total/java/) 都提供自己独特而强大的功能。 


购买 Aspose 组件（或像 [Aspose.Total](https://products.aspose.com/total/java/) 这样的组件套件）最好的部分是能够接触到我们的开发团队。我们的开发团队意识到，如果您的公司需要某个功能，那么其他公司同样会需要。虽然并非每个功能请求都能得到满足，但我们的团队在提供帮助时会保持非常开放和灵活。正是这种心态帮助 Aspose 组件变得如此强大。如果您需要 Office 自动化对象的其他功能，您增加它们被添加的可能性是非常非常低的。 
## **结论**
{{% alert color="primary" %}} 

虽然本文已经涵盖了许多 Aspose 组件比 Office 自动化更好的关键点，但还有很多很多其他原因。本文主要仅讨论了最关键的要点。所有不同的 Aspose 组件都提供无风险、无义务的 [评估版本](https://downloads.aspose.com/slides/java)。我们鼓励您利用此评估，更好地了解 Aspose 可以为您的应用程序做些什么。 

{{% /alert %}} 
