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