在通过任一方法部署完外接程序后,就可在 SharePoint 网站的"添加外接程序"页面上提供以供安装。 如果外接程序需要访问主机 Web 或其父订阅的权限,SharePoint 将提示要安装该外接程序的用户授予这些权限。
当您需要更新加载项以修复缺陷或添加功能时,可在加载项清单中进行更改并提供加载项的版本号。 然后将加载项包重新部署到商店或加载项目录中。 用户会在 24 小时内在 SharePoint UI 中收到通知,提示有可用的更新。 只要单击一次即可安装此更新。
SharePoint 承载的加载项几乎完全由加载项 Web 中的 SharePoint 组件组成。 这些组件有时被称为占据 SharePoint 的核心地位。
自定义页面
模块(文件集)
列表和库实例
自定义列表表单和视图
自定义内容类型
Web 模板
内置列(不是自定义列)
内置 Web 部件(不是自定义 Web 部件)
JavaScript 文件
加载项 Web 的自定义按钮和菜单项
SharePoint 托管加载项中的所有业务逻辑都使用 JavaScript,无论是直接在自定义页面中,还是在通过自定义页面引用的 JavaScript 文件中。 使用提供的 JavaScript 版 SharePoint 对象模型 (JSOM),加载项可以对 SharePoint 数据轻松执行 CRUD(创建、读取、更新和删除)操作。
SharePoint 托管加载项中的自定义页面通常是 ASP.NET 页面 (ASPX),可以声明方式引用 ASP.NET 和现成 SharePoint 控件,而没有任何代码隐藏。 不过,可以使用客户端呈现选项和自定义 JavaScript 来自定义 SharePoint 控件。
SharePoint 托管加载项中的 JavaScript 可以访问加载项 Web 外的数据和资源,具体是使用下列两种可安全处理浏览器的同源策略的技术之一:特殊 JavaScript 跨域库或特定 JavaScript WebProxy 类。 使用这些技术,SharePoint 托管加载项可以处理主机 Web 、父订阅或 Internet 上其他任何位置中的数据。
提供商托管 SharePoint 加载项
提供商托管加载项可以包含 SharePoint 托管加载项中的所有 SharePoint 组件。 不过,提供商托管加载项与 SharePoint 托管加载项有区别,因为前者至少包含一个在 SharePoint 场或 SharePoint Online 订阅外部托管的远程组件(如 Web 应用、服务或数据库)。 这可以是与 SharePoint 场或云服务位于同一企业网络中的服务器。 外部组件可以托管在任何 Web 托管堆栈上,其中包括 Linux、Apache、MySQL 和 PHP (LAMP) 堆栈。
“提供商”是指拥有服务器或云帐户的任何人。
它可以是拥有要安装加载项的 SharePoint 场或 SharePoint Online 租户的相同公司或组织。 不过,加载项的开发人员也可以成为提供商。 通常,如果加载项是为一个组织而创建,此组织就负责托管。 不过,如果加载项是为多个组织而创建,更可能是由开发人员托管远程组件。 如果 SharePoint 加载项是通过 Office 应用商店进行市场营销,必须采用开发人员托管方式,因为开发人员没有加载项购买者的任何联系信息。 在这种情况下,加载项的各种实例都知道远程组件的 URI,因为加载项清单已对此进行指定。
可以完全灵活地对远程组件使用托管框架。 无需使用 Microsoft 堆栈。 可以使用任何 Web 托管框架,包括 LAMP(Linux、Apache 服务器、MySQL、PHP)、MEAN(MongoDB、ExpressJS、AngularJS、Nodejs)、Java、Python 等。还可以使用非 Microsoft 开发工具。 此外,远程组件还可以托管在非 Microsoft 云服务中。
使用特殊的部件版式控制,
可以为加载项中的远程页面指定 SharePoint 页面外观
。
远程数据可以是 Blob、缓存、消息队列、内容交付网络 (CDN) 和数据库
等。 数据库可以是任何类型,包括面向关系和对象的类型。 可通过多种方式访问远程数据。 例如,您可以使用 Business Connectivity Services (BCS) 在 SharePoint 列表中呈现数据。 另一种选择是,在远程 Web 应用程序的页面上的网格中公开数据。
SharePoint 外接程序
使用 SharePoint API 连接 SharePoint
功能(搜索、工作流、社交网络、分类、用户配置文件和 BCS 等)并与之进行集成。 这样用户就可以阅读文档、进行搜索、与人员联系、执行 CRUD 操作等。 提供多个 API 集:
如果远程组件是使用 .NET 进行实现,可以使用托管代码
SharePoint 客户端对象模型 (CSOM)
库。
对于不基于 .NET 的远程组件,可以使用一组
REST/OData API
访问 SharePoint 数据。 如果更希望使用 OData 接口,也可以通过 .NET 客户端使用它们。
虽然前面提到
JSOM 库
不能用于远程页面,但提供商托管加载项的加载项 Web 中可以包含自定义 SharePoint 页面,这些页面中的 JavaScript 能够使用 JSOM 库。
正如用户和组一样,能够访问 SharePoint 的提供程序托管的外接程序也是安全主体
。 和用户一样,外接程序主体也必须经过身份验证和授权。 外接程序需要具有对主机 Web 中的 SharePoint 数据执行操作的权限。 在大多数方案中,用户通过 SharePoint 外接程序使用 SharePoint 的有效权限是用户权限与外接程序权限的交集,虽然在某些方案中用户可以使用某个外接程序执行原本并不具备执行权限的操作。
提供商托管加载项可以连接到任何内部或公共 Web 服务
。与 SharePoint 托管加载项不同,提供商托管加载项可以
处理 SharePoint 列表和列表项事件
,如向文档库添加项。
选择 SharePoint 开发路径
准备好开始了吗?
如果您是经验丰富的 SharePoint 开发人员,我们建议您从 SharePoint 承载的加载项开始着手。
它们与您过去构建的 SharePoint 扩展类型最为相似。
开始创建 SharePoint 托管的 SharePoint 外接程序
如果你是经验丰富的 ASP.NET Web 应用程序开发人员,我们建议你从 SharePoint 托管的外接程序开始着手。
它们是围绕 Web 应用程序生成的。
开始创建提供程序托管的 SharePoint 外接程序
如果你想要在非 Microsoft 堆栈上开发提供程序托管的外接程序,下面介绍了入门方法:
安装适用于堆栈的工具(如果尚无这些工具的话)。
创建 Office 365 开发人员帐户,用于测试和调试目的。 有关详细信息,请转到在
Office 365 上为 SharePoint 外接程序设置开发环境
,或者如果已有Office 365订阅,只需
在其上创建开发人员网站
即可。
加载项将使用 SharePoint 的 REST/OData API 对 SharePoint 数据执行 CRUD 操作: