三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO

当 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 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 构建Office扩展功能

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

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 ,谢谢。

时间: 2024-08-11 19:26:09

三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO的相关文章

三维力控组态软件7.0 开发+运行 无限点 USB加密狗批发

三维力控组态软件7.0 开发+运行 无限点   USB加密狗 长期批发,量大价优,加税点可开正规机打发票 支持主流操作系统 ForceControl V7.0 是一个完全集成的工业控制软件产品,完全兼容微软的32/64位Windows 7及Windows Server 2008操作系统,通过提供可靠.灵活.高性能的监控系统平台,以及简单易用的配置工具和强大的功能使您能够针对各种规模的应用进行快速开发并部署. 丰富的图形处理能力 通过ForceControl V7.0提供的组态开发环境,系统集成工

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方案开发集成Apps Office新的App模型

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第11章节--为Office和SP解决方案开发集成Apps  Office新的App模型 Office 2013中新的App模型和SP2013中App模型工作方式相似,给过去开发人员面临的挑战减轻了很多.

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方案开发集成Apps Office的JavaScript对象模型

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第11章节--为Office和SP解决方案开发集成Apps  Office的JavaScript对象模型 Office JavaScript对象模型提供给你的Web应用程序和Office host应用程序交流的能力,

找不到Office的功能请来这[Search Command] - Office 2010 外挂介绍

MS Office 自从2007 版开始变成 Ribbon UI 后, 很多朋友常常找不到功能 不过 MS Office Lab 提供提供了一个外挂功能叫 Search Command 提供使用者输入简单的 Keyword 来搜寻自己需要的功能- MS Office 自从2007 版开始变成 Ribbon UI 后,? 很多朋友常常找不到功能 不过 MS Office Lab 提供提供了一个外挂功能叫 Search Command (居然2011年底才Release, 哇勒) 提供使用者输入简单

SQL join 三种扩展用法

以前学习,只知道  LEFT JOIN.RIGHT JOIN.INNER JOIN.FULL  JOIN,共四种集合,然而加上一些条件,可以组合成另外三种集合,直接上图. 原文地址:https://www.cnblogs.com/zbseoag/p/10986777.html

K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

  一.概述 在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别. 首先需要明确的是上述四种算法都属于"硬聚类"算法,即数据集中每一个样本都是被100%确定得分到某一个类别中.与之相对的"软聚类"可以理解为每个样本是以一定的概率被分到某一个类别中. 先简要阐述下上述四种算法之间的关系,已经了解过经典K-means算法的读者应该会有所体会.没有了解过

三种不同查找算法实际查找性能的对比

   一.查找问题的介绍 查找问题就是在给定的集合(或者是多重集,它允许多个元素具有相同的值)中找寻一个给定的值,我们称之为查找键.有许多查找算法可供选择,其中既包括直截了当的顺序搜索,也包括效率极高但应用受限的折半查找,还有那些将原集合用另一种形式表示以方便查找的算法.最后一类算法对于现实应用具有特别重要的价值,因为它们对于大型数据库的信息存取来说是不可或缺的. 对于查找来说,没有一种算法在任何情况下都是最优的.有些算法速度比其他算法快,但需要较多的存储空间:有些算法速度非常快,但仅适用于有序

[PHP]PHP编程操作Mysql数据库的三种方式

当我开始去接触PHP的时候,真切的感受到其所具有的魅力,本着学习的态度和打破固有的语言和模式的想法,开始了PHP之旅,总的来说,走的还是比较顺利,在其中能够看到C,Java,Perl影子,学习曲线不大,但是做好产品仍然有着一条漫漫长路. 多余的话不说了,慢慢感受和领悟,本文主要讲述PHP操作数据库的三种扩展. 如下图是PHP访问数据库的三种扩展方式: 下面举出三种方式访问数据库并查询数据的实例代码: 1.mysql扩展 <?php //1:获取数据库连接 $connection = @ mysq

windows之实现3D立体效果的三种方法

第一种:快捷键:win+tab 第二种:cmd输入rundll32.exe dwmapi #105 第三种:使用软件bumptop windows之实现3D立体效果的三种方法