Office 扩展应用(Office Apps,Office 2013 AddIns,Apps for Office)开发 —— 中文文档

继 VBA 和 VSTO 之后, 微软为 Office 平台开发者提供了新的扩展应用模型(App Model),基于此平台实现的 Office 扩展应用,官方称之为 Office Apps,也称为 Apps for Office 或 Office 2013 Add-Ins。相对于 VBA 和 VSTO 两种开发方式,新的 App Model 有如下几点不同:

  • [传播与分享]VBA 和 VSTO 的开发者大多是为了提高工作效率,在 Office 中定制部门或公司内部的特定功能,开发出的脚本或者Assembly多在本部门或者公司内传播使用。App Model 允许开发者将应用发布在 Office 商店,使全球的 Office 用户可以使用它,并且允许开发者根据需求定义应用是否收费。这将大大地减少不同公司不同部门之间的重复投资,使“共享同一个应用完成同一类事情”变成可能。
  • [学习门槛与技术延续性]VBA 和 VSTO 的开发者需要学习较多的入门知识,才能弄清两种开发模型与 Office 程序的交互流程,有较高的学习门槛。比如需要弄清 VBA 有哪些语法,可以做什么程度的事情。App Model 的开发更多地像是 Web 应用程序的开发,开发者可以将 Web 应用的开发体验无缝地迁移到 Office 扩展应用开发中。开发中唯一需要额外了解的是如何利用 App Model 提供的 JSOM API 与文档进行交互。
  • [扩展程序的更新]基于 VBA 和 VSTO 的 Office 扩展应用程序(或者脚本),一般时通过本地拷贝的方式进行传播,它们运行在本地的 Office 软件并依赖于相应的平台支持(如 VSTO 依赖于 Office 软件提供的主互操作程序集,诸如Microsoft.Office.Interop.Excel.dll)。 然而当 Office 软件或一些平台支持不一致时,会出现同一个脚本或应用在不同的机器上表现不同,甚至是不支持。新的 App Model下开发的 Office App, 由于本质上是运行在 Office 平台(包括2013及以后的富客户端,Web 版, RT版,甚至是 Mac版 详情请点击此处)上嵌入的的 iframe 中,而 App 本身是被开发者 host 在远端的 Web 服务器上。 App 开发者可以根据情况快速的更新 App 的功能或者修正 bug。
  • [开放的模型提供更多的可能性]新的 App Model 使得 Office 软件变的更加开放,开发者可以将 Office 平台强大的文档功能与开放的互联网技术连接在一起,开发者可以在 App 中做到 VBA 脚本,基于 VSTO 的程序做不到的事情。比如,越来越多的数据源提供给开发者 REST API, 其中 Office 365 REST API 就允许开发者通过一组 URL的方式访问用户的邮件,日历,SharePoint Online 和 OneDrive for Business 上的目录及文件等等,开发者可以在应用中利用灵活的 Web 开发技术简单高效的访问不同的数据源,达到自己的目的。

新 App 的名称

这里我们讲在新的 App Model 下开发的 App 翻译为“Office 扩展应用”,而在这之前,它还先后被称为 Office 2013 Apps,Apps for Office,Office 2013 Add-Ins(区别与使用 VSTO 构建的 Office Add-ins)。

在线文档地址

我在 GitHub 上创建了中文文档项目(https://github.com/mspwang/office-ex ),内容包括两部分:

  • 通过 XML 文件生成 HTML 网页的 C# 程序;
  • 由上述程序生成的 HTML 文档。 这些 HTML 文档将 host 在 http://simpeng.net/oai ,如有变动,将会在此更新。

文档的主题目录结构如下所示:

什么是 Office Apps (应用)

Office 文档操作 API

Office 365 API

【原创】文章地址:http://www.cnblogs.com/simpeng/p/4591765.html, 转载请注明出处,谢谢。

如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)的更多相关文章

  1. 使用Vitamio开发iOS平台上的万能播放器

    迅速了解 Vitamio是干什么的?看官方怎么说: "Vitamio SDK for iOS是Yixia Ltd官方推出的 iOS 平台上使用的软件开发工具包(SDK),为iOS开发人员提供 ...

  2. VS2017开发Linux平台上的程序

    重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux.发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了L ...

  3. 开发快平台(M302I小e开发板系列教程)

    开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...

  4. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  5. 如何用Baas快速在腾讯云上开发小程序-系列2:搭建Phabricator开发管理平台

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/905333001487424158 来源:腾云阁 h ...

  6. 如何在微软Windows平台上打造出你的Linux开发环境(转载)

    如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读  原文链接  [收藏]  « » 英文原文: ...

  7. 关于使用jqmobi前端框架在phonegap平台上开发时的日期时间选择控件

    jqmobi(appframework)作为Intel的一款html5移动前端框架,以其自身轻量级和容易上手获得了很多移动HTML5开发者的喜爱,相对于jquerymobile,它可以说将jQuery ...

  8. phongap开发中安卓平台上如何调用第三方播放器来播放HLS视频

    前文曾经讲了关于在安卓平台上利用phonegap开发播放HLS的解决方案,其实最好的方案就是自己针对HLS视频开发自己的播放器,但是开发播放器是一个浩大的工程,必须对原生安卓开发非常熟悉,并且对视频播 ...

  9. Linux平台上常用到的c语言开发程序

    Linux操作系统上大部分应用程序都是基于C语言开发的.小编将简单介绍Linux平台上常用的C语言开发程序. 一.C程序的结构1.函数 必须有一个且只能有一个主函数main(),主函数的名为main. ...

随机推荐

  1. NOIP模拟 wall - 最大生成树

    题目大意: 给出n个点,第i个点坐标是(\(x_i, y_i\)),给出m条边,第i条边的权值是\(w_i\),求将图变成一颗树所需要删除边的最小权值和. 题目分析: 首先要看出坐标其实是出题人使出的 ...

  2. java-工具代码

    格式化输出 //d:是输出整数 //10;表示输出10位整数 //0:表示如果不够10位的话,用0来占位,也可以用写成空格,用空格来占位 String a = String.format(" ...

  3. 符号函数(sign function)性质及应用

    sgn(x):=⎧⎩⎨−101if x<0,if x=0,if x>0. 形式及描述较为简单的数学对象,更应当注意的便是其细节问题,对于 sign 函数(符号函数),便是自变量取值为 0 ...

  4. FileReader的编码问题

    有一个UTF-8编码的文本文件,用FileReader读取到一个字符串,然后转换字符集:str=new String(str.getBytes(),"UTF-8");结果大部分中文 ...

  5. unity3D 4.6与上述号码. UI穿透问题,而且不穿透的真机模拟器渗透问题解决

    好久没有写博客颓废很长一段时间. . . 不废话. EventSystem.current.IsPointerOverGameObject(); //返回值true 如果是点击UI该.不过貌似没有使用 ...

  6. Math对象重新整理

    注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法.这是它与Date,String对象的区别. Math对象的属性 --Math对象包含的属性大 ...

  7. quick-cocos2d-x游戏开发【8】——动画与动作

    动画与动作,在quick中都有对其封装,所以我们还是来看一下吧. 总的来说,对于帧动画,quick封装的方法我们能够常常使用,这是很方便的,以下直接上代码来直观感受下, 比方,14张帧图片,採用coc ...

  8. JS 实现Map

    function Map() { this.arr = new Array(); var struct = function(key, value) { this.key = key; this.va ...

  9. 代码首要的目标应该是“解决问题”(包括“没有 bug”),其次的目标才是“简单优雅”。

    什么是现实理想主义者 曾经有人看了我的文章,以为我是一个“理想主义者”,来找我聊天.他说:“你知道吗,我跟你一样喜欢简单优雅的代码.上次我在某公司工作,看到他们的代码乱得不成样子,二话没说给他们重写了 ...

  10. Apache Commons Pool 故事一则 专题

    Apache Commons Pool 故事一则 最近工作中遇到一个由于对commons-pool的使用不当而引发的问题,习得正确的使用姿势后,写下这个简单的故事,帮助理解Apache Commons ...