如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)
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 App —— "Hello World" 应用
- Office Apps 类型及平台支持
- Office Apps与VBA、VSTO的区别
- Office Apps的数据源
- 访问 Exchange Online 的邮件、日历、联系人
- 访问 SharePoint Online 和 OneDrive 商业版的目录和文件
- 访问 Azure AD 用户和用户组
- Office graph
【原创】文章地址:http://www.cnblogs.com/simpeng/p/4591765.html, 转载请注明出处,谢谢。
如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)的更多相关文章
- 使用Vitamio开发iOS平台上的万能播放器
迅速了解 Vitamio是干什么的?看官方怎么说: "Vitamio SDK for iOS是Yixia Ltd官方推出的 iOS 平台上使用的软件开发工具包(SDK),为iOS开发人员提供 ...
- VS2017开发Linux平台上的程序
重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux.发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了L ...
- 开发快平台(M302I小e开发板系列教程)
开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
- 如何用Baas快速在腾讯云上开发小程序-系列2:搭建Phabricator开发管理平台
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/905333001487424158 来源:腾云阁 h ...
- 如何在微软Windows平台上打造出你的Linux开发环境(转载)
如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读 原文链接 [收藏] « » 英文原文: ...
- 关于使用jqmobi前端框架在phonegap平台上开发时的日期时间选择控件
jqmobi(appframework)作为Intel的一款html5移动前端框架,以其自身轻量级和容易上手获得了很多移动HTML5开发者的喜爱,相对于jquerymobile,它可以说将jQuery ...
- phongap开发中安卓平台上如何调用第三方播放器来播放HLS视频
前文曾经讲了关于在安卓平台上利用phonegap开发播放HLS的解决方案,其实最好的方案就是自己针对HLS视频开发自己的播放器,但是开发播放器是一个浩大的工程,必须对原生安卓开发非常熟悉,并且对视频播 ...
- Linux平台上常用到的c语言开发程序
Linux操作系统上大部分应用程序都是基于C语言开发的.小编将简单介绍Linux平台上常用的C语言开发程序. 一.C程序的结构1.函数 必须有一个且只能有一个主函数main(),主函数的名为main. ...
随机推荐
- 机器学习: TensorFlow 的数据读取与TFRecords 格式
最近学习tensorflow,发现其读取数据的方式看起来有些不同,所以又重新系统地看了一下文档,总得来说,tensorflow 有三种主流的数据读取方式: 1) 传送 (feeding): Pytho ...
- [GeekBand] STL 仿函数入门详解
本文参考文献::GeekBand课堂内容,授课老师:张文杰 :C++ Primer 11 中文版(第五版) page 37 :网络资料: 叶卡同学的部落格 http://www.leavesite. ...
- Sublime Text3中JSX支持Emmet快捷键
在复习React的过程中,发现Sublime有些快捷键不能用了,如Emmet的Tab快速生成HTML代码只能用Ctrl+E快捷键,而不能用Tab键了,在网上找了很多文章,发现都有问题,最终自己通过下面 ...
- qemu使用copy-on-write(COW)磁盘
写时复制(copy-on-write,缩写COW)技术不会对原始的镜像文件做更改,变化的部分写在另外的镜像文件中,这种特性在qemu中只有QCOW格式支持,多个 COW 文件可以指向同一映像同时测试多 ...
- Android 获取imei号码,获取手机型号和系统版本号
在AndroidManifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STAT ...
- MFC 窗口分割与通信
一.关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割. 那么我们自己如何创 ...
- 一个Java工程师的入门级Linux命令集
0.前言 网上介绍linux的命令的文章一大堆,但是大部分都是流于命令介绍,把命令的所有参数都介绍一遍,但是其实在真正的工作中,很多参数都不会用到.本文总结了我自己常用的一些命令,这些命令都比较 ...
- intel edison with grove lcd
由intel xdk,例如,下面的过程能够打印Hello world至grove lcd上 var mraa = require ('mraa'); var LCD = require ('jsupm ...
- WPF 获取 ListView DataTemplate 中控件值
原文:WPF 获取 ListView DataTemplate 中控件值 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei19 ...
- ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 用户注册 上一章节我们终于迁移完了 Identity 的数据,也创建 ...