SharePoint 加载项模型中的网站预配
与完全信任代码中的情况相比,预配网站集和子网站采用的方法不同于新 SharePoint 外接程序模型中的方法。 在典型的完全信任代码 (FTC)/场解决方案场景中,你将使用网站定义和 Web 模板创建网站集和子网站,然后使用声明性代码配置站点并应用自定义项。 在此模型中,你通常会使用声明性代码创建网站栏、内容类型和在 XML 中定义的列表,然后使用 SharePoint 的功能框架元素对其进行打包和部署。
在 SharePoint 外接程序模型场景中,你可以使用 SharePoint 客户端对象模型 (CSOM) 创建和配置网站集和子网站。 此模式通常称为 远程预配模式。
在高级别,远程预配模式如下所示:
高级别准则
作为经验法则,我们建议使用下列高级别准则创建网站集和子网站。
- 基于 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 管理中心中打开设置页面(如下所示)。
然后,选中“在此 URL 处使用窗体”复选框,并输入指向实现网站创建功能的提供商托管的 SharePoint 外接程序的 URL(如下所示)。
注意,SharePoint 警告你(在下面的对话框中)关于与此方法关联的安全影响,并提供给你禁用这种类型的功能的选项。
何时适合?
当你需要提供给你的最终用户自助服务功能以创建基于自定义模板的 SharePoint 网站集时,此选项非常适合。
开始使用
下列文章介绍了替代创建站点链接并提供了帮助你入门的代码示例。
- 使用适用于 SharePoint 2013 的外接程序的自助式网站预配(MSDN 博客)
- 关于此模式的端到端的文章,附带视频。
- Provisioning.Cloud.Sync(O365 PnP 示例)
- 此解决方案演示用于提供同步网站集或子网站创建体验的模型,以引入用于网站模板的模型,而不使用实际的沙盒解决方案或 stp 文件。
替代创建子网站链接
在此模式中,创建子网站的链接使用指向提供商托管的 SharePoint 外接程序的链接替代。 在提供商托管的 SharePoint 外接程序中运行的 CSOM 代码是通过作为网站创建过程一部分的远程预配模式执行的。
- 该模式仅在创建目标子网站时使用;该模式不用于创建网站集。
- 替代 URL 通过使用 JavaScript 修改链接的自定义操作进行配置。 此 URL 指向提供商托管的 SharePoint 外接程序。
- 该提供商托管的 SharePoint 外接程序使用 CSOM API 创建子网站。
- CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
- 此方法可能用于 Office 365 租户和本地 SharePoint。
- 提供了创建和配置 SharePoint 网站的极大灵活性。
- 就短期和长期而言,均可简单且廉价地实现和维护。
何时适合?
当你需要为你的最终用户提供自助服务功能以创建基于自定义模板的 SharePoint 子网站时,此选项非常适合。
开始使用
下列文章介绍了替代创建子网站链接并提供了帮助你入门的代码示例。
- Provisioning.Cloud.Sync(O365 PnP 示例)
- 此解决方案演示用于提供同步网站集或子网站创建体验的模型,以引入用于网站模板的模型,而不使用实际的沙盒解决方案或 stp 文件。
- Provisioning.SubSiteCreationApp(O365 PnP 示例)
- 此解决方案使用所谓的远程预配模式提供尽可能灵活的子网站模板系统。 它还包括附带的视频。
使用提供商托管的 SharePoint 外接程序
在此模式中,在提供商托管的 SharePoint 外接程序中运行的 CSOM 代码是通过作为网站创建过程一部分的远程预配模式执行的。
- 该模式可用于创建目标网站集和子网站
- SharePoint 托管的外接程序必须被授予对 SharePoint 环境的完全控制权限。
- 你不能在 Microsoft 市场中使用此模式,因为它需要完全控制权限。
- 提供商托管的 SharePoint 外接程序使用 CSOM API 创建网站集和子网站。
- CSOM/REST API 还可能用于在预配过程中配置该网站的其他方面。
- 此方法可能用于 Office 365 租户和本地 SharePoint。
- 提供了创建和配置 SharePoint 网站的极大灵活性。
- 就短期和长期而言,均可简单且廉价地实现和维护。
何时适合?
当你需要提供给你的最终用户自助服务功能以创建基于自定义模板的 SharePoint 网站集和子网站时,此选项非常适合。 请注意,需要为用户提供提供程序托管的应用程序的链接,以便他们能够访问它。
- Async provisioning with hybrid scenarios(使用混合方案的异步预配)(MSDN 博客文章)
- Provisioning.Hybrid.Simple(O365 PnP 示例)
- 此示例演示使用 Azure 存储队列、WebJobs 和服务总线中继的可能最简单的混合安装。 这是在 Azure 网站中托管提供程序 SharePoint 外接程序的演示,它可用于将新的自定义品牌网站集预配到本地服务器场,而无需在本地满足任何 SharePoint 外接程序基础结构要求。
- Provisioning.Services.SiteManager(O365 PnP 示例)
- 此示例演示如何扩展本地场,以支持从提供商托管的 SharePoint 外接程序创建网站集。
- Provisioning.SiteCollectionCreation(O365 PnP 示例)
- 演示如何使用来自提供商托管的 SharePoint 外接程序的适用于 Office 365 的 CSOM 创建网站集。
使用 .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 外接程序和脚本可以构建为在无需任何用户交互的情况下运行。
- Async provisioning for Office 365 with WebJobs(使用 WebJobs 对 Office 365 进行异步预配)(MSDN 博客文章)
- Provisioning.Cloud.Async.WebJob(O365 PnP 示例)
- 解决方案演示如何使用 Azure 存储队列和 Azure WebJobs 生成异步自助服务网站集预配解决方案。
- Provisioning.Framework.Console(O365 PnP 示例)- 演示新引擎的威力的网站预配框架示例。
- Provisioning.Cloud.Async (O365 PnP Sample) - Demonstrates how to create site collections in Office 365/SharePoint asynchronously. Requests are saved in a list within the SharePoint host web. The console application included in this sample is deployed to Azure or an on-premises environment & scheduled.
相关链接
- 使用适用于 SharePoint 2013 的外接程序的自助式网站预配(MSDN 博客)
- 指南文章中 https://aka.ms/OfficeDevPnPGuidance
- MSDN 中的引用位于 https://aka.ms/OfficeDevPnPMSDN
- 视频中的 https://aka.ms/OfficeDevPnPVideos
PnP 示例
- Provisioning.Cloud.Sync(O365 PnP 示例)
- Provisioning.SubSiteCreationApp(O365 PnP 示例)
- Provisioning.Services.SiteManager(O365 PnP 示例)
- Provisioning.SiteCollectionCreation(O365 PnP 示例)
- 示例和内容(网址为 https://github.com/SharePoint/PnP)
适用于
- Office 365 多租户 (MT)
- Office 365 专用 (D) 部分
- SharePoint 2013 本地 – 部分
专用模式和本地模式在使用 SharePoint 外接程序模型技术方面完全相同,但在可以使用的可能的技术方面存在差异。