标签:
当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式。Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Office Add-In Model,它允许在 Office 应用程序中创建一片区域,并在这片区域中展现网页与文档的交互。开发者可以将高度定制化的 Web 应用或服务集成在 Office 中,使之在整个 Office 平台上可用。 应用程序实际上并没有安装在运行 Office 的计算机上,而是托管在开发者所指定的 Web 服务器上,因此,可以轻松地从该服务器对它进行维护和更新。现在到处都是社交网络、移动设备、各种各样的云服务以及实时的文档协作,新的模型正致力于将 Office 与 Web 技术和资源衔接起来。
对于开发者而言,无论是 VBA、VSTO,还是新的 Office Add-In Model,只要可以解决实际问题,可以选择任何一种方式实现。而如果要开发新的扩展功能,可以优先考虑 Office Add-In Model 实现,因为这种方式有其独有的优势。下面,我们逐一介绍三种开发模型的优劣,让大家清楚什么时候适宜选择什么样的方案。
【部署方式多样化】使用这种方式开发的扩展功能,称之为 Office Add-In, 微软为这类 Add-In 提供了统一的发布商店 --- Microsoft Office Store。这可以最大化的减少不同公司、不同部门针对相似业务的重复投资,使所有的 Office 用户在不同的 Office 平台( 主要有富客户端、web版 Office、RT 版 Office等)使用优质的Office 自定义扩展功能。另外, Office Store 还允许开发者对自己发布的Office Add-In收费,这无疑为优质的Add-In开发者带来了商机。另外,微软还允许开发者将开发的 Add-In 部署在本地共享文件夹中或者SharePoint App Catalog上,这样只有局域网或者本公司的人才可以在 Office 软件中使用该Add-In。在发布和传播上, 显然新的Add-In Model走在了VBA、VSTO的前面。
【学习成本更低】开发Office Add-In,更多是利用现今流行的Web开发技术,对于开发者(尤其是已经熟知Web 技术的从业人员)而言,学习和开发Office Add-In的成本也大大降低。开发者甚至可以利用已经存在的web 服务或者网站快速构建出一个Office Add-In。
【维护和更新更加容易】基于 VBA 和 VSTO 的 扩展功能,它们运行在本地的 Office 软件并依赖于相应的平台支持(如 VSTO 依赖于 Office 软件提供的主互操作程序集,诸如Microsoft.Office.Interop.Excel.dll)。 然而当 Office 软件或一些平台支持不一致时,会出现同一个脚本或应用在不同的机器上表现不同,甚至是不支持。 新的 Add-In Model下开发的Add-In, 由于本质上是运行在 Office 平台(包括2013及以后的富客户端,Web 版, RT版,甚至是 Mac版)上嵌入的的 iframe 中, 而 Add-In 本身是被开发者 host 在远端的 Web 服务器上。 Add-In 开发者可以根据情况快速的更新 App 的功能或者修正 bug。
由于这个模型刚刚起步,在Office功能的自定义上稍显不足,更多地强调可以在Office中衔接Web技术。
VSTO(也就是Visual Studio Tools for Office) 是一套用于创建自定义Office应用程序的Visual Studio工具包。VSTO借助于 .NET Framework去自定义和扩展 Office的功能。 VSTO 全面支持 C# 和Visual Basic 语言, 因此可以利用 .Net Framework 中常用的开发模型、工具和方法。VSTO 允许开发出的功能与Office 客户端程序紧密整合,不管是在使用的 APIs 上还是针对用户操作接口的自定义上。如下图所示的是一个PowerPoint 中的 VSTO solution,它实现了一个自定义的Ribbon(上侧红框)、基于 Windows Presentation Foundation实现的任务面板(右侧红框)和浮动的Windows Form窗口。
利用 VSTO 开发时,开发者在 Visual Studio 中利用各种模板创建针对Excel/Outlook/InfoPath/Project/PowerPoint的扩展应用程序。利用模板创建新的 Office 项目后,Visual Studio 会添加对生成该项目所需的主互操作程序集(简称PIA) 的引用,比如说 Microsoft.Office.Interop.Excel.dll。 在某些情况下,你可能需要添加对其他 PIA 的引用(例如,如果你希望在 Microsoft Office Excel 项目中使用 Microsoft Office Word 的功能)。 MSDN 中列出了可用于 Office 2013 和 Office 2010 的 主互操作程序集。
当需要高度自定义Office功能或者针对Office 2007、2010及以下版本的富客户端开发扩展功能时,VSTO将是最好的选择。
基于VSTO的solution,其部署和更新依赖于各个企业的IT部门。另外,由于VSTO允许高度的自定义化,其运行需要和其他桌面程序一样的权限,因此可以访问文件系统,或与其他软件通信,所以IT部门或者用户个人需要自己衡量所要安装的VSTO solution 是否安全可靠。
VBA 是用来自动化Office 客户端软件内操作的工具。由于这项技术植根于 Visual Basic 6, 并在 Word和Excel中提供了宏录像(macro recorder)的支持, VBA 为自动化Office文档内的任务提供了可能。 不过由于历史久远, VBA 更多的是提供UI上的自定义上和整体上对工具框架的支持。
VBA脚本可以存储分布在Office 文档中,这使得脚本的初次发布和传播比较容易,但是当文档通过邮件或其他方式广泛的传播和复制后,如果需要对脚本进行更改,就会变得非常麻烦。另外,VBA脚本可以做成应用程序级别的,不与特定的文档相关,这时则需要每个使用它的用户正确的安装到特定的目录下。
Office 取得巨大成功的一个重要原因就是 VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。 VBA 的语言入门门槛较低,而这些用户利用 VBA 解决的正式工作中关键问题。因此,VBA 程序大多作为部门内部或个人使用的小工具。
为了防止使用过 VSTO 的开发者将新的 Add-In Model 与 以前的 Office Add-In 概念混淆,下表列出了微软官方对 Office 平台开发中涉及到概念的最新命名:
原名 |
新名称 |
适用于 |
apps for Office |
Office Add-ins |
Office 2013 及 更新版本 ( 2013 app model) |
mail app for Outlook |
Outlook Add-in |
Office (VSTO) |
app for Excel |
Excel Add-in |
Office (VSTO) |
app for PowerPoint |
PowerPoint Add-in |
Office (VSTO) |
app for Word |
Word Add-in |
Office (VSTO) |
Office App Model |
Office Add-in Model |
Office (2013 app model) |
apps for SharePoint |
SharePoint Add-ins |
SharePoint (SharePoint 2013 app model) |
SharePoint App Model |
SharePoint Add-in Model |
SharePoint (SharePoint 2013 app model) |
app part |
add-in part |
SharePoint (SharePoint 2013 app model) |
app web |
add-in web |
SharePoint (SharePoint 2013 app model)
|
相应地,在 Office Developer Tools for Visual Studio 中, 将分为以下几类:
Type |
Description |
Example |
Office Web Add-ins |
Add-ins based on the web technologies provided by the new Office Add-in Model. 基于 Web 技术的 2013 app model |
Excel Web Add-in |
Office VSTO Add-ins |
Add-ins based on managed code technologies built with Visual Studio Tools for Office (VSTO). (VSTO) |
Excel 2013 VSTO Add-in |
Office COM Add-ins |
Add-ins based on COM and VBA technology that extend applications by adding custom commands and specialized features. |
Excel 2013 COM Add-in |
Roadmap for Apps for Office, VSTO, and VBA -- http://blogs.msdn.com/b/officeapps/archive/2013/06/18/roadmap-for-apps-for-office-vsto-and-vba.aspx
Office 主互操作程序集 -- https://msdn.microsoft.com/zh-cn/library/15s06t57.aspx
New names for apps for Office and SharePoint --- https://msdn.microsoft.com/en-us/library/fp161507.aspx#bk_newname
如需转载,请注明出处http://www.cnblogs.com/simpeng/p/4640850.html ,谢谢。
三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO
标签:
原文地址:http://www.cnblogs.com/simpeng/p/4640850.html