为什么不选择自动化

重要问题

  • 为什么 Aspose 组件比 Microsoft Office 自动化更好?

我们在 Aspose 常常听到两个问题:

  • 你的产品是否需要安装 Microsoft Office 才能运行?

简短而直接的答案是—不需要

Aspose 和 Aspose 组件完全独立,不与 Microsoft Corporation 有任何关联,也没有获得其授权、赞助或其他形式的批准。

  • 我们为什么应该使用 Aspose 产品而不是利用 Microsoft Office 自动化?

首先,使用 Aspose.Slides 时,你可以享受许多好处

其次,微软本身强烈 建议 不要在软件解决方案中使用 Office 自动化。

概述

如我们之前所述,Aspose 组件作为自动化的更好替代方案有若干原因。其中一些关键原因包括:

  • 安全性
  • 稳定性
  • 可扩展性/速度
  • 价格
  • 特性

我们在下面的段落中详细阐述了这些关键原因。

安全性

以下是微软文章中的直接引用:

“Office 应用程序从不打算用于服务器端,因此没有考虑到分布式组件面临的安全问题。Office 不会对传入请求进行身份验证,也不会保护你免受意外运行宏或从你的服务器端代码启动另一个可能运行宏的服务器的影响。不要打开从匿名 Web 上传到服务器的文件!基于最后设置的安全设置,服务器可以在具有完全权限的管理员或系统上下文中运行宏,并危及你的网络!此外,Office 使用许多客户端组件(如 Simple MAPI、WinInet、MSDAIPP),可以缓存客户端身份验证信息以加速处理。如果 Office 在服务器端被自动化,一个实例可能会为多个客户端提供服务,因为身份验证信息已在该会话中缓存,因此一个客户端有可能使用另一个客户端的缓存凭据,从而通过假冒其他用户获得未授权的访问权限。”

Aspose 产品非常 安全。Aspose 组件在与所有 ASP.NET 应用程序相同的用户上下文下运行(在 ASPNET 用户下)。因此,Aspose 组件 不会 造成安全风险。它们也不会消耗关键的系统资源。此外,当 Aspose 组件打开文档时,宏不会自动运行。Aspose 组件的构建是为了让开发者创建、操作和保存 Office 文件。

稳定性

以下文字是之前提到的微软文章中的直接引用:

“Office 2000、Office XP 和 Office 2003 使用 Microsoft Windows Installer (MSI) 技术,使得最终用户的安装和自我修复更容易。MSI 引入了“首次使用时安装”的概念,使功能可以在运行时动态安装或配置(对于系统,或更常见的,是对于特定用户)。在服务器端环境中,这既会减慢性能,也会增加出现要求用户批准安装或提供适当安装光盘的对话框的可能性。虽然它旨在提高 Office 作为最终用户产品的韧性,但 Office 对 MSI 功能的实现却在服务器端环境下适得其反。此外,当在服务器端运行时,Office 的整体稳定性无法得到保证,因为它并未针对这种类型的使用进行设计或测试。在网络服务器上将 Office 作为服务组件使用可能会降低该机器的稳定性,从而影响整个网络。如果你计划在服务器端自动化 Office,尽量将程序隔离到一个不会影响关键功能的专用计算机,并在需要时可以重新启动。”

由于 Aspose 组件打包成单个 DLL,用户无需安装其他任何部分或组件即可使其功能正常。Aspose 组件仅被 .NET 应用程序使用,并且组件代码的任何部分都未设计为等待人工响应。

可扩展性/速度

以下是微软文章中的直接引用:

“服务器端组件需要是高度可重入的、多线程的 COM 组件,且对多个客户端具有最低开销和高吞吐量。而 Office 应用程序在几乎所有方面都是完全相反的。它们是非可重入的、基于 STA 的自动化服务器,旨在为单个客户端提供多样但资源密集型的功能。作为服务器端解决方案时,它们提供的可扩展性极少,并且在内存等重要元素上具有固定限制,不能通过配置更改。更重要的是,它们使用全局资源(如内存映射文件、全局加载项或模板以及共享自动化服务器),这会限制可以同时运行的实例数量,并在多客户端环境中导致竞争条件。计划同时运行多个 Office 应用程序实例的开发者需要考虑对 Office 应用程序的池化或串行访问以避免潜在的死锁或数据损坏。”

Aspose 组件具有极其优秀的可扩展性和闪电般的速度。Office 应用程序并未设计为同时被数百或数千名用户使用,而 Aspose 组件则是专门为此设计。我们的组件是真正的 .NET 解决方案。

价格

当应用程序利用 Microsoft Office 自动化时,必须为每一台运行该应用程序的机器购买一份 Microsoft Office。很多情况下,应用程序可能需要创建或操作一个 Office 文件,但这个过程并不需要 Microsoft Office。

在创建基于 Web 的应用程序时,重要的是要记住,Microsoft Office 自动化组件的定价和许可并不是针对服务器端解决方案的。因此,针对使用 Microsoft Office 组件的 Web 应用程序的部署,没有好的许可解决方案。然而,Aspose 提供了非常经济实惠的服务器端应用程序解决方案。

特性

Aspose 组件提供了管理 Office 文件所需的一切,甚至更多。我们按照帮助开发者以最少的努力实现最大成果的理念设计了它们。

例如,Aspose.Cells 使开发者能够将数据从 DataTableDataView 直接导入到 Excel 文件中。Aspose.Words 提供了类似的功能,允许开发者直接从任何 .NET 数据对象填充 Word (即邮件合并)文档。Aspose 家族中的每个组件 都提供自己独特而强大的特性。

购买 Aspose 组件的最好部分是可以接触到我们的开发团队。例如,如果你使用 Office 自动化对象并需要某些功能,你获得这些功能的机会是非常非常低的。然而,使用 Aspose 组件的情况就不同了。

我们的团队在提供帮助时始终保持开放和灵活——这正是 Aspose 组件之所以如此强大的原因。

结论