SharePoint 加载项模型中的网站预配

与完全信任代码中的情况相比,预配网站集和子网站采用的方法不同于新 SharePoint 外接程序模型中的方法。 在典型的完全信任代码 (FTC)/场解决方案场景中,你将使用网站定义和 Web 模板创建网站集和子网站,然后使用声明性代码配置站点并应用自定义项。 在此模型中,你通常会使用声明性代码创建网站栏、内容类型和在 XML 中定义的列表,然后使用 SharePoint 的功能框架元素对其进行打包和部署。

在 SharePoint 外接程序模型场景中,你可以使用 SharePoint 客户端对象模型 (CSOM) 创建和配置网站集和子网站。 此模式通常称为 远程预配模式

在高级别,远程预配模式如下所示:

1) 远程计时器作业,转至 2) 基于现有网站的初始预配。通常是团队网站或发布网站。使用 CSOM/REST 从预配引擎中上载资产。3) 基于用户的选择,在现有网站上应用所需更改(配置等)以创建项目网站、组织网站或工作组网站。这是专业部分,但是因为我们从 OOB 网站开始,所以我们总能获得 OOB 网站的最新改进(将其作为基线)。

高级别准则

作为经验法则,我们建议使用下列高级别准则创建网站集和子网站。

  • 基于 SharePoint 附带的现成的网站模板预配网站集和子网站。
    • 使用 SharePoint CSOM 创建网站集和子网站。
  • 将自定义项和设置应用于现成的网站集和子网站以满足你的需求。
    • 使用 SharePoint CSOM 应用自定义项和设置。
  • 我们建议你在创建网站集和子网站的过程中不要使用功能框架元素。
    • 此准则的唯一例外是,当你将基于 XML 的声明性预配用于 SharePoint 托管的 SharePoint 外接程序中的外接程序 Web 的情况。 这是因为 CSOM 在 SharePoint 托管的 SharePoint 外接程序中不可用。

创建网站集和子网站时所面临的挑战

使用 Web 浏览器创建与使用代码创建

重要的是要了解通过 Web 浏览器和通过代码创建网站集和子网站的不同之处。 此列表描述了不同的选项。

  • 通过 Web 浏览器创建
    • 在此选项中,用户可以通过 Web 浏览器访问 SharePoint 网站,并使用管理页面创建网站集和子网站。
    • 通常,仅在原型制作和修改不计划扩大规模以包括其他网站集或子网站的单个 SharePoint 网站时,需要使用 Web 浏览器手动创建网站集和子网站。
  • 使用代码创建
    • 在此选项中,你将执行 SharePoint CSOM 代码来创建网站集和子网站。
    • 在下文中,你可以阅读有关你可能用于执行 SharePoint CSOM 代码的几种方法。

通过 Web 浏览器创建时,请考虑以下几点。

  • 通过 Web 浏览器创建网站集和子网站通常是一个复杂且耗时的过程。
    • 这些因素使通过 Web 浏览器创建网站集和子网站易于出现错误
  • 无法以重复的方式重新创建通过 Web 浏览器创建的网站集和子网站(及其包含的组件)。
    • 当你从开发环境移到测试环境再移到生产环境时,这使得难以将网站集和子网站快速一致地部署到不同的环境。

使用代码创建时,请考虑以下几点。

  • 使用代码创建网站集和子网站通常涉及到使用自定义实用工具库执行 SharePoint CSOM 代码。
    • 你会发现这些库适用于 OfficeDev PnP GitHub 存储库中的许多项目。 通篇文章直至结尾都在引用这些库。
    • 这些因素使通过代码创建网站集和子网站易于成功
  • 你可以精细的方式轻松一致地复制通过代码创建的网站集和子网站(及其包含的组件)。
    • 当你从开发环境移到测试环境再移到生产环境时,你可以轻松地将网站集和子网站部署不同的环境并对其进行引用。

必须快速完成!

最终用户不会接受必须等待几个小时才能预配好其新的 SharePoint 网站。

必须始终完美!

网站集和子网站及其包含的各种组件(例如网站栏、内容类型、列表、母版页、JavaScript 文件、图像等)是定义信息体系结构的基础,它们必须完美

不正确的网站集和子网站预配可能影响在其中对其进行预配的 SharePoint 网站中的整个业务线应用程序,以及 SharePoint 的其他部分和访问 SharePoint 服务的其他业务线应用程序。

例如:如果你有用于管理公司中的项目的 SharePoint 网站,你很可能会对所有网站创建一个公用列表方案。 这将需要创建网站栏和内容类型。 你通过 SharePoint 搜索页搜索这些网站中的信息时,你将按内容类型或标记(网站栏)筛选结果。 如果你的网站栏和内容类型在所有项目网站之间并不完全一致,你不会收到准确的搜索结果。

本示例还可应用于按搜索 Web 部件的内容、SharePoint 加载项、移动应用和访问 SharePoint 网站中的信息的其他任何系统。

用于创建网站集和子网站的选项

有几个选项可用于使用新的 SharePoint 外接程序模型创建网站集和子网站。 所有这些选项都包含在上文所述的使用代码创建选项中。

  • 替代创建网站链接
  • 替代创建子网站链接
  • 使用提供商托管的 SharePoint 外接程序
  • 使用 .NET/Java/Objective-C 应用程序或 PowerShell 脚本

在此模式中,创建网站集的链接使用指向提供商托管的 SharePoint 外接程序的链接替代。 在提供商托管的 SharePoint 外接程序中运行的 CSOM 代码是通过作为网站创建过程一部分的远程预配模式执行的。

  • 该模式仅在创建目标网站集时使用;该模式不用于创建子网站。
  • 替代 URL 在 SharePoint 管理中心中进行配置。 此 URL 指向提供商托管的 SharePoint 外接程序。
  • 该提供商托管的 SharePoint 外接程序使用 CSOM API 创建网站集。
    • CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
  • 此方法可能用于 Office 365 租户和本地 SharePoint。
  • 提供了创建和配置 SharePoint 网站集的极大灵活性。
  • 就短期和长期而言,均可简单且廉价地实现和维护。

配置

若要替代创建站点链接,请在 SharePoint 管理中心中打开设置页面(如下所示)。

SharePoint 管理中心菜单(突出显示设置菜单选项)。

然后,选中“在此 URL 处使用窗体”复选框,并输入指向实现网站创建功能的提供商托管的 SharePoint 外接程序的 URL(如下所示)。

一个“确定取消”对话框,标题为“来自网页的消息”,其中显示“通过更改用户创建网站的位置,你可能允许他们运行可访问其他网站的自定义脚本 (有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=164264). 防止这种情况,请运行以下 SharePoint Online 命令行管理程序命令:Set-SPOsite <SiteURL> -DenyAddAndCustomizePages 1 是否仍要更改用户创建网站的位置?

注意,SharePoint 警告你(在下面的对话框中)关于与此方法关联的安全影响,并提供给你禁用这种类型的功能的选项。

在此页上,箭头指向授权的复选框,使用该 URL 中的表单(未选中)。 该页面上的其他文本和控件:向用户提供在定义的位置创建新的团队网站的快捷方式。 单选按钮隐藏链接未选中,单选按钮显示链接已选中。 网站分类字段对用户隐藏。 第二联系人字段不是必需的。

何时适合?

当你需要提供给你的最终用户自助服务功能以创建基于自定义模板的 SharePoint 网站集时,此选项非常适合。

开始使用

下列文章介绍了替代创建站点链接并提供了帮助你入门的代码示例。

在此模式中,创建子网站的链接使用指向提供商托管的 SharePoint 外接程序的链接替代。 在提供商托管的 SharePoint 外接程序中运行的 CSOM 代码是通过作为网站创建过程一部分的远程预配模式执行的。

  • 该模式仅在创建目标子网站时使用;该模式不用于创建网站集。
  • 替代 URL 通过使用 JavaScript 修改链接的自定义操作进行配置。 此 URL 指向提供商托管的 SharePoint 外接程序。
  • 该提供商托管的 SharePoint 外接程序使用 CSOM API 创建子网站。
    • CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
  • 此方法可能用于 Office 365 租户和本地 SharePoint。
  • 提供了创建和配置 SharePoint 网站的极大灵活性。
  • 就短期和长期而言,均可简单且廉价地实现和维护。

何时适合?

当你需要为你的最终用户提供自助服务功能以创建基于自定义模板的 SharePoint 子网站时,此选项非常适合。

开始使用

下列文章介绍了替代创建子网站链接并提供了帮助你入门的代码示例。

使用提供商托管的 SharePoint 外接程序

在此模式中,在提供商托管的 SharePoint 外接程序中运行的 CSOM 代码是通过作为网站创建过程一部分的远程预配模式执行的。

  • 该模式可用于创建目标网站集和子网站
  • SharePoint 托管的外接程序必须被授予对 SharePoint 环境的完全控制权限。
    • 你不能在 Microsoft 市场中使用此模式,因为它需要完全控制权限。
  • 提供商托管的 SharePoint 外接程序使用 CSOM API 创建网站集和子网站。
    • CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
  • 此方法可能用于 Office 365 租户和本地 SharePoint。
  • 提供了创建和配置 SharePoint 网站的极大灵活性。
  • 就短期和长期而言,均可简单且廉价地实现和维护。

何时适合?

当你需要提供给你的最终用户自助服务功能以创建基于自定义模板的 SharePoint 网站集和子网站时,此选项非常适合。 请注意,需要为用户提供提供程序托管的应用程序的链接,以便他们能够访问它。

使用 .NET/Java/Objective-C 应用程序或 PowerShell 脚本

在此模式中,CSOM 代码是通过 .NET/Objective-C/iOS 应用程序或 PowerShell 脚本执行的。 此模式也包括使用远程计时器作业;例如,Azure Web 作业。

  • 该模式可能用于创建目标网站集和子网站。
  • SharePoint 外接程序必须被授予 SharePoint 环境的完全控制权限。
  • 身份验证是一项挑战,具体取决于你要创建的 SharePoint 外接程序的类型和 SharePoint 安全设置。
  • 该提供商托管的 SharePoint 外接程序使用 CSOM API 创建网站集和子网站。
    • CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
  • 此方法可能用于 Office 365 租户和本地 SharePoint。
  • 提供了创建和配置 SharePoint 网站的极大灵活性。
  • 就短期和长期而言,均可简单且廉价地实现和维护。

何时适合?

此选项适用于开发运营方案。 它允许你创建专门构建用于处理开发运营流程的自定义应用程序或脚本。 此选项提供了最高级别的自动化,因为 SharePoint 外接程序和脚本可以构建为在无需任何用户交互的情况下运行。

PnP 示例

适用于

  • Office 365 多租户 (MT)
  • Office 365 专用 (D) 部分
  • SharePoint 2013 本地 – 部分

专用模式和本地模式在使用 SharePoint 外接程序模型技术方面完全相同,但在可以使用的可能的技术方面存在差异。