SharePoint 加载项模型的网站栏和内容类型
在新 SharePoint 外接程序模型中创建 SharePoint 网站的网站栏和内容类型的方法与使用完全信任代码不同。 在典型的完全信任代码 (FTC)/场解决方案场景中,使用声明性代码创建网站和内容类型。 在声明性代码方法中,在 XML 中定义网站栏和内容类型,然后使用 SharePoint 的功能框架元素对其进行打包和部署。
在 SharePoint 外接程序模型方案中,使用 SharePoint 客户端对象模型 (CSOM) 或 SharePoint REST API 创建网站栏和内容类型。
高级别准则
作为经验法则,我们建议使用下列高级别准则创建网站栏和内容类型。
- 要使用 SharePoint CSOM 或 REST API 来创建网站栏和内容类型。
- 不能使用功能框架元素来创建网站栏和内容类型。
- 此准则的唯一例外是,当你将基于 XML 的声明性预配用于 SharePoint 托管的 SharePoint 外接程序中的 SharePoint 外接程序 Web 时。 这是因为 CSOM 在 SharePoint 托管的 SharePoint 外接程序中不可用。
- 可以将创建网站栏和内容类型自动作为网站预配过程的一部分。 有关详细信息,请参阅网站预配方法。
创建 SharePoint 网站的网站栏和内容类型的难点
使用 Web 浏览器创建与使用代码创建
重要的是要了解通过 Web 浏览器和通过代码创建网站栏和内容类型的不同之处。 此列表描述了不同的选项。
- 通过 Web 浏览器创建
- 在此选项中,用户可以通过 Web 浏览器访问 SharePoint 网站,并使用管理页面创建网站栏和内容类型。
- 通常,仅在原型制作和修改不计划扩大规模以包括其他网站集或子网站的单个 SharePoint 网站时,需要使用 Web 浏览器手动创建网站栏和内容类型。
- 使用代码创建
- 在此选项中,你将执行 SharePoint CSOM/REST 代码来创建网站栏和内容类型。
- 在下文中,你将了解可以用于执行 SharePoint CSOM/REST 代码的几种选项。
通过 Web 浏览器创建时,请考虑以下几点。
- 通过 Web 浏览器创建网站栏和内容类型通常是一个复杂且耗时的过程。
- 以下因素导致其易于出错。
- 没有控制通过 Web 浏览器创建的网站栏或内容类型的 GUID。
- 这导致网站栏和内容类型难以部署到不同的环境中并在业务线应用程序中持续引用。
通过代码创建时,请考虑以下几点。
- 使用代码创建网站栏和内容类型通常需要使用自定义实用工具库执行 SharePoint CSOM/REST 代码。
- 你会发现这些库适用于 OfficeDev PnP GitHub 存储库中的许多项目。 通篇文章直至结尾都在引用这些库。
- 这些因素使通过代码创建网站栏和内容类型易于成功。
- 你可以控制通过 SharePoint CSOM/REST 创建的网站栏和内容类型的 GUID。
- 这使网站栏和内容类型易于部署到不同的环境中并在业务线应用程序中持续引用。
必须快速完成!
预配 SharePoint 网站时通常要创建网站栏和内容类型。 最终用户不会接受必须等待几个小时你才能预配好其新 SharePoint 网站。
必须始终完美!
网站栏和内容类型是定义最底层信息体系结构的基础,因此必须完美!
不正确的网站栏和内容类型预配可能影响在其中对其进行预配的 SharePoint 网站中的整个业务线应用程序,以及 SharePoint 的其他部分和访问 SharePoint 服务的其他业务线应用程序。
例如:如果你的公司使用 SharePoint 网站来管理项目,你很可能会对所有网站创建一个公用列表方案。 这将需要创建网站栏和内容类型。 你通过 SharePoint 搜索页搜索这些网站中的信息时,你将按内容类型或标记(网站栏)筛选结果。 如果你的网站栏和内容类型在所有项目网站之间并不完全一致,你不会收到准确的搜索结果。
可将本示例应用于“搜索的内容”Web 部件、SharePoint 加载项、移动 SharePoint 加载项和访问 SharePoint 网站中的信息的其他任何系统。
创建 SharePoint 网站的网站栏和内容类型的选项
有多种方法可以调用 CSOM/REST 代码以创建网站栏和内容类型。 这些模式都归纳在上文所述的使用代码创建的方法中。 你可以在网站预配方法中查看这些模式的各个详细信息。
- 替代创建网站链接
- 替代创建子网站链接
- 使用提供商托管的 SharePoint 外接程序
- 使用 Windows/Java/iOS 应用程序或 PowerShell 脚本
无论选择实施何种选项,最终都将使用 CSOM/REST 创建网站栏和内容类型。
有各种不同的文章和示例可以用于了解使用 CSOM 创建网站栏和内容类型的方法。 你可以在此找到这些示例(按调用 CSOM 代码的模式分类)来创建网站栏和内容类型。
使用提供商托管的 SharePoint 外接程序
当你需要提供给你的最终用户自助服务功能以创建基于自定义模板的 SharePoint 网站集和子网站时,此选项非常适合。
- Core.ContentTypesAndFields(O365 PnP 示例)
- 演示如何在主机 Web 中创建新的内容类型、在主机 Web 中创建分类字段并将其连接到分类、创建列表并将其与内容类型相关联,以及创建特定语言的内容类型和字段。
使用 Windows/Java/iOS 应用程序或 PowerShell 脚本
此选项适用于开发运营方案。 它允许你创建专门构建用于处理开发运营流程的自定义应用程序或脚本。 此选项提供了最高级别的自动化,因为你可以将 SharePoint 外接程序和脚本构建为在无需任何用户交互的情况下运行。
- Core.CreateContentTypes(O365 PnP 示例)
- 此示例演示如何创建网站栏、内容类型并将此网站栏添加到相应的内容类型。 该示例还介绍了为 Office 365 CSOM API 引入的新本地化功能。
- Core.CreateDocumentContentType (O365 PnP 示例)
- 此示例演示如何创建文档内容类型并将该文档模板与相应的内容类型相关联。
相关链接
- SharePoint 加载项模型中的网站预配(O365 PnP 方法)
- 指南文章中 https://aka.ms/OfficeDevPnPGuidance
- MSDN 中的引用位于 https://aka.ms/OfficeDevPnPMSDN
- 视频中的 https://aka.ms/OfficeDevPnPVideos
PnP 示例
- Core.CreateContentTypes(O365 PnP 示例)
- Core.ContentTypesAndFields(O365 PnP 示例)
- Core.CreateDocumentContentType(O365 PnP 示例)
- Branding.DisplayTemplates(O365 PnP 示例)
- Core.DataStorageModels(O365 PnP 示例)
- 示例和内容(网址为 https://github.com/SharePoint/PnP)
适用于
- Office 365 多租户 (MT)
- Office 365 专用 (D) 部分
- SharePoint 2013 本地 – 部分
专用模式和本地模式在使用 SharePoint 外接程序模型技术方面完全相同,但在可以使用的可能的技术方面存在差异。