为何不使用自动化
为什么 Aspose 组件远胜于 Microsoft Office 自动化。我们在 Aspose 最常收到的两个问题是:
- 您的产品是否需要安装 Microsoft Office 才能运行? 简短的答案是否定的。Aspose 组件完全独立,既不隶属于也未获得微软公司的授权、赞助或其他任何形式的认可。
- 为什么我们应该使用 Aspose 产品而不是使用 Microsoft Office 自动化? 我们能给出的最简答复是原因众多,最主要的原因是微软自身强烈建议不要在软件解决方案中使用 Office 自动化: Office 服务器端自动化的注意事项. 有多种理由表明 Aspose 组件是自动化的更佳替代方案。以下列出了其中的一些关键要点。另外,请务必访问本节末尾的链接。
安全性
以下是上述引用的 Microsoft 文章的直接引用:
"Office 应用从未被设计用于服务器端使用,因此未考虑分布式组件面临的安全问题。Office 不会对传入请求进行身份验证,也无法防止因意外运行宏或启动可能运行宏的其他服务器而导致的风险。不要打开从匿名网页上传到服务器的文件!根据上次设置的安全设置,服务器可能在管理员或系统上下文下运行宏,拥有完整权限,从而危及网络!此外,Office 使用许多客户端组件(如 Simple MAPI、WinInet 和 MSDAIPP),这些组件会缓存客户端的身份验证信息以加快处理速度。如果在服务器端自动化 Office,单个实例可能为多个客户端提供服务,由于会话已缓存身份验证信息,可能导致一个客户端使用另一个客户端的凭据,从而通过冒充其他用户获得未授权的访问权限。"
Aspose 产品非常安全。Aspose 组件与所有 ASP.NET 应用程序运行在相同的用户上下文下,即 ASPNET 用户。因此,Aspose 组件不会对关键系统资源构成潜在风险。此外,当 Aspose 组件打开文档时,宏不会被自动执行。Aspose 组件的设计目标是让开发者创建、操作并保存 Office 文件。与 Microsoft Office 包相关的风险并不存在于 Aspose 组件中。
稳定性
以下是上述 Microsoft 文章的直接引用:
"Office 2000、Office XP 和 Office 2003 使用 Microsoft Windows Installer (MSI) 技术,使终端用户的安装和自修复更为简便。MSI 引入了“首次使用时安装”的概念,允许在运行时动态安装或配置功能(针对系统,或更常针对特定用户)。在服务器端环境中,这既会降低性能,又会增加可能出现对话框要求用户批准安装或提供相应安装盘的概率。虽然该机制旨在提升 Office 作为终端用户产品的弹性,但在服务器端环境中却适得其反。此外,由于 Office 并未为服务器端运行设计或测试,其整体稳定性无法得到保证。在网络服务器上将 Office 用作服务组件可能会降低该机器乃至整个网络的稳定性。如果您计划在服务器端自动化 Office,请尝试将该程序隔离到一台专用计算机上,以免影响关键功能,并在需要时能够重新启动。"
由于 Aspose 组件被打包成单个 DLL,永远不需要安装任何额外的部件或组件来使其工作。Aspose 组件仅供 .NET 应用程序使用,组件代码中没有任何需要等待人工响应的部分。Aspose 组件已经过严格测试,已被 IBM、Hilton、Reader’s Digest、Bank of America 等公司使用。
可伸缩性/速度
以下是上述 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 Server 扩展的许可); 因此,对于使用 Microsoft Office 组件的 Web 应用程序,没有好的许可方案。Aspose 也提供了非常具成本效益的服务器端应用解决方案。
功能
Aspose 组件提供了管理 Office 文件所需的一切,甚至远远超出这些需求。它们的设计理念是让开发者以最少的工作量实现最大的成果。与 Office 自动化不同,Aspose 组件提供了许多强大且节省时间的功能。例如,Aspose.Cells 允许开发者直接将 DataTable 或 DataView 导出为 Excel 文件。Aspose.Words 具备类似功能,能够直接从任意 .NET 数据对象填充 Word 邮件合并文档。Aspose 系列中的每个组件都拥有自己独特且强大的特性。
购买 Aspose 组件或组件套件的最大优势是可以直接获得我们开发团队的支持。我们的开发团队认识到,若贵公司需要某项功能,很可能其他公司也有同样需求。虽然并非所有功能请求都能实现,但我们的团队在提供帮助时始终保持开放和灵活的态度。这种理念使得 Aspose 组件能够发挥如此强大的功能。若您期望在 Office 自动化对象中添加额外功能,其实现的可能性非常、非常低。
结论
本文已阐述了 Aspose 组件为何比 Office 自动化更佳的关键要点。所有不同的 Aspose 组件均提供免费、无义务的评估版本。我们鼓励您利用该评估版,亲自体验 Aspose 能为您的应用程序带来什么。
欲了解更多信息,请参阅以下网络文章: