将场解决方案转换为 SharePoint 外接程序模型

如果你已使用场解决方案扩展 SharePoint 环境,并想将扩展迁移到 SharePoint 外接程序模型以便更轻松地过渡到 SharePoint Online,你需要将场解决方案转换为 SharePoint 外接程序模型。

将场解决方案转换为 SharePoint 外接程序模型涉及分析现有扩展、设计和开发新的 SharePoint 外接程序,然后在生产环境中测试并部署你的外接程序。

本文介绍将场解决方案转换为 SharePoint 外接程序模型时可使用的过程和最佳做法。

规划转换过程

When you transform your 服务器场解决方案 to the SharePoint 外接程序模型, you want to ensure that the impact on your users is minimal. Carefully analyze your current 服务器场解决方案, and then design your new SharePoint 外接程序 to meet the needs of your organization. 我们建议使用以下过程以确保成功转换。

准备情况

了解以下信息:

  • SharePoint 外接程序模型、不同类型的外接程序和托管选项。 有关详细信息,请参阅 SharePoint 加载项

  • 用于访问本地数据的远程访问技术。

解决方案评估

通过以下操作分析功能和业务要求:

  • 标识当前环境中已部署的场解决方案。 考虑使用第三方工具来帮助确定已部署的扩展。 对确定的每个服务器场解决方案进行详细分析。

  • 与用户一起审核要求。 Consider asking your users to demonstrate how they use the existing 服务器场解决方案 to perform their daily work.

  • Identifying, documenting, and designing new functionality to include in the new SharePoint 外接程序 . Consider reviewing your list of new feature requests from your users for additional ideas.

  • 标识未使用的功能,并允许你的用户在新的 SharePoint 外接程序中忽略此功能。

  • 对于每个场解决方案,确定是否将其替换为 SharePoint 外接程序。 某些解决方案(例如 SharePoint 管理扩展)在 SharePoint 外接程序模型中不能重复。 有关详细信息,请参阅 SharePoint 应用程序生命周期管理SharePoint 外接程序与 SharePoint 解决方案的对比

解决方案规划

使用 SharePoint 外接程序模型基于以下内容设计新的应用程序:

  • 解决方案评估步骤中收集的要求。

  • 你对现有代码的分析。 在代码分析过程中,请考虑标识可删除的代码部分(例如不再使用的代码或需求已更改的情况)。

开发和测试应用程序的 SharePoint 外接程序模型版本

这通常是转换过程中最耗时的步骤。

部署新的外接程序

根据具体需求,你可能决定同时运行场解决方案和新的 SharePoint 外接程序,或者可能会取消场解决方案而仅允许用户使用新的 SharePoint 外接程序。 无论哪种方案,都请确保你的部署处于稳定状态,并向用户发送相应的信息。

如果你在现有网站集中的内容基于场解决方案(例如,如果内容是通过使用内容类型创建的),则在完全取消场解决方案之前,需要将现有内容转换为使用新的 SharePoint 外接程序模型解决方案。 请确保有足够的时间来完成此任务,因为该任务耗时很长且很困难。

用于部署新 SharePoint 外接程序的转换方法

After you finish development and unit testing of your new SharePoint 外接程序 , start transforming your 服务器场解决方案 to the new SharePoint 外接程序 by using one of the transformation approaches listed in the following table.

转换方法 说明 优点 缺点
就地 将你的新 SharePoint 外接部署到现有 SharePoint 环境。

在取消场解决方案之前,需要确保你的网站正在使用新的 SharePoint 外接程序。
  • 更少的整体用户影响。
  • 需要更少资源,因为正在使用现有 SharePoint 环境。
  • 无需使用第三方工具。
  • 最小站点停机时间
  • 一次升级一个网站集,而非一次升级所有服务器场。
  • URL 不会更改。
  • 难以跟踪站点上所有受影响资产的完成进度。
  • 增加了创建孤立项的可能性(当资产指向文件系统不存在的文件时,该资产称为孤立项)。
Swing 或内容迁移 从当前部署了场解决方案的现有网站集中提取内容,然后将内容部署到使用新的 SharePoint 外接程序的新网站集中。

在将内容迁移到 SharePoint Online 时,通常会使用此过程。
  • 清理 SharePoint 环境,且无需之前的任何服务场解决方案依赖项。
  • The new site collection is isolated from your production environment. Release the updated site collection when ready.
  • .
  • 需要第三方工具来帮助完成内容迁移。
  • 需要其他 SharePoint 环境。
  • 网站所需的停机时间。
  • 如果在一段时间内并行运行这两个网站,则 URL 可能会更改。

适合特定场解决方案的最佳做法

转换特定解决方案时,请应用下列最佳做法:

页面布局和母版页

发布网站或启用发布功能的团队网站中可存在自定义页面布局和母版页。

替换页面布局和母版页的方法:

  1. 将新页面布局或母版页上传到你的网站。 通过手动操作或使用远程 API,将新母版页和页面布局上传到你的网站集。 远程 API 包括客户端对象模型 (CSOM) 或 REST。 这可以确保母版页和页面布局对场解决方案没有依赖关系。

  2. 将网站配置为使用新的页面布局和母版页。

  3. 收回页面布局和母版页的上一版本。

Web 部件和控件

替换 Web 部件和控件:

  1. 扫描所有现有页面以确定包含 Web 部件的页面。

  2. (可选)检查以确定是否存在可替换你的自定义 Web 部件的开箱即用 Web 部件。

  3. 将现有 Web 替换为应用部件实例,或使用其他技术(如页面或页面布局中嵌入的 JavaScript)来实现相同的功能。

  4. 使用内嵌 JavaScript 操作 UI 元素。

注意

若要使用应用部件替换现有 Web 部件,需要执行以下操作:

  • 在 Office 365 订阅中启用外接程序的旁加载。 咨询你的 Office 365 管理员。
  • 使用 CSOM 在网站上启用外接程序的旁加载。 有关详细信息,请参阅 Core.SideLoading 代码示例。
  • 在网站上安装应用部件。
  • 在网站上禁用外接程序的旁加载。
  • 在 Office 365 订阅中禁用外接程序的旁加载。 咨询你的 Office 365 管理员。

页面操作

在自定义网站预配过程中,可能需要执行页面操作。 The Provisioning.Pages code sample shows page manipulation techniques, including creating a wiki page, adding HTML content to the page, creating a promoted links list, creating pages with different layouts, adding out-of-the-box web parts to the page, and removing the page.

网站栏、列表定义和内容类型

如果网站栏、列表定义和内容类型是使用功能框架元素创建的,而这些元素是使用场解决方案部署的,则必须使用 Swing 或内容迁移转换方法。 这不适用于使用沙盒解决方案部署的功能框架元素。 若要使用内容迁移转换方法,必须使用第三方工具来删除场解决方案依赖项。

模块或功能框架

模块使用文件指针,这意味着未在文件系统上自定义和部署文件。 如果场解决方案使用模块,请通过将相同文件的备用版本部署到内容数据库对文件进行自定义,扫描解决方案并将其更新为指向存储在内容数据库中的新文件,然后收回指向存储在文件系统上的文件的场解决方案。

网站模板和 Web 模板

应着重转换由网站模板或 Web 模板部署的功能框架元素。 例如,确保撤销场解决方案时不替换网站的 default.aspx 页面。

计时器作业

如果你使用 SharePoint Online,则无法创建和管理计时器作业。 不过,你可以创建使用 Windows 任务计划程序的控制台应用程序,或创建用于远程安排和运行控制台应用程序的 Azure WebJob

创建自定义计时器作业时,请确定你是否需要使用特定帐户或基于 OAuth 的仅限应用令牌。 Core.TimerJobs.Samples 代码示例演示了如何创建你自己的自定义计时器作业。

注意

如果计时器作业使用服务器端代码,必须将计时器作业重新设计为使用 CSOM 或另一种方法。

本节内容

文章 介绍如何
替换内容类型和网站栏 使用 CSOM 替换 SharePoint 内容类型和网站栏,将网站栏添加到新内容类型,并使用新内容类型替换内容类型。
替换使用模块部署的文件 通过上载和更新对使用新文件的引用,替换之前使用服务器场解决方案中的模块部署的文件,如 SharePoint 中的母版页和页面布局。
替换根据列表定义创建的列表 替换使用 SharePoint 中的列表定义创建的列表和库。
替换 Web 部件 执行转换过程,使用 SharePoint 客户端对象模型 (CSOM) 将 Web 部件替换为外接程序部件。

另请参阅