2018年1月4日,星期四

使用网站设计或PnP模板进行SharePoint网站配置

所以新“网站设计和脚本”从模板创建SharePoint网站的功能已开始在Office 365中可用。这提供了使用Microsoft的替代方法’模式和实践(PnP)调配库和XML,这已成为大多数经验丰富的实现者最近创建自定义站点模板的方式。完整“self-service” implementation, it’通常为最终用户提供自定义表格以请求站点并提供任何所需的信息-PnP构建块提供了支持,尽管在大多数情况下需要一些定制以及组织中要实施的工作’的Office 365和Azure环境。 Microsoft正在引入网站设计/网站脚本,作为模板化SharePoint网站的另一种方法,这是Office 365的更强大功能。

但是,’s 不 just a simple “either/or”站点设计和PnP之间的决策–两者都是有效的方法,并且有很多考虑因素可能导致您使用其中一种。另外,它’也可以通过从站点设计中调用PnP模板来结合这两种方法。这是非常受欢迎的,因为:

  • 网站设计尚无法对SharePoint网站进行很多调整
  • 许多组织在使用PnP实现的自定义网站模板上已有投资

因此,实施者可以在站点设计,PnP设置或两者的组合之间进行选择。在这篇文章中,我’d想探索有关SharePoint网站创建/模板策略的一些因素。

网站设计的主要注意事项

1.最终用户直接创建网站(无需批准步骤)

您定义的网站设计可在开箱即用的网站创建体验中选择。 那里 是 no approval process,通常您必须对所提供的用户体验感到满意。它’s the "SharePoint home"显示网站创建用户界面的页面-可从Office 365标头中的“ SharePoint”文本或应用启动器中的“ SharePoint”应用访问。必须在租户上启用自助网站创建,才能显示“创建网站”链接(SharePoint管理中心> Settings > Site Creation > “向有权创建网站的用户显示“创建网站”命令”)。请注意,可以限制使用 具体的网站设计 使用以下命令来访问特定人群(例如,如果您具有“执行站点”或“财务站点”的模板,并且仅特定人群可以看到此选项) Grant-SPOSiteDesignRights 要么 GrantSiteDesignRights(REST),但必须在租户上启用允许所有用户创建网站的顶级开关–这些命令仅隐藏/显示特定模板。  

这里’体验是什么样的:

COB网站设计-创建网站

COB网站设计-网站设计选择

COB网站设计-表格1

COB网站设计-表格2 

2.它 ’可以提供自定义表单,但需要实施(特别是收集自定义元数据)

用户创建网站时,’想要收集一些自定义元数据的常见做法–例如业务部门,目标,成本中心等。幸运的是,似乎有可能提供一种自定义表格来简化此操作(但是’尚未在我的任何租户中工作):

自定义网站创建表单

It’尚不清楚该表单的预期格式。可能是在这里需要PowerApp表单,在这种情况下,’d指定类似:

自定义网站创建表单-PowerApps

但是,除了开发和托管自定义表单所需的实现工作之外,我还设想,要使该自定义元数据成为必需,需要进行大量工作 已应用 某处。毕竟,你’我们需要决定是将其存储在网站的某个位置(例如,物业袋)还是某个集中的列表或数据库中的某个位置。因此,附带一点’也许值得记住…

2.5没有站点目录“list”, except for your site collection 清单 in the SharePoint Admin Center

在典型的SharePoint网站模板实施中(是否基于PnP),’通常是一个SharePoint列表,其中包含已请求和创建的所有网站的详细信息。实施者通常会在此列表中存储自定义元数据(例如部门,成本中心等),尤其是如果没有’网站所有者无需持续更新。但是那里’在本地网站创建设置中没有这样的列表,只有SharePoint管理中心中的网站集列表- 请记住,这些网上论坛网站仅会在将于2018年初启动的新管理中心中显示! It’尚不清楚这是否将支持自定义元数据并使整个过程变得容易,但我对此表示怀疑– I’d完全希望有工作来处理您的自定义元数据,我认为’s fair..

    3.无法阻止创建通讯站点的能力

    一些组织很高兴最终用户可以从批准的模板中创建团队网站, 但希望交流网站成为更受控制的事物– 也许是因为他们’再次担心有些人会将通讯站点移得太远,并创建了许多小型内联网. 不幸的是,这不是’目前尚无可能。如果最终用户可以创建SharePoint网站(默认设置),则他们可以创建 团队网站和交流网站。当然,通信网站是SharePoint Online的一个受欢迎的附加功能-但我可以相信,由于这个原因,一些组织将阻止现成的网站创建工具并通过更多的管理实现自己的版本。

    使用现成的UI创建网站的第一步如下所示(但不在上面的系列中)–如您所见,两种类型都可供选择:

    COB网站设计-网站类型

    4.网站设计创建Office 365组网站(除非您已禁用最终用户创建组的功能)

    如您所知,从SharePoint主页创建网站时(如上所示),’实际上是创建的Office 365组–假设您的Office 365环境正在使用默认设置,该设置允许所有最终用户创建组。如果不是,则创建经典/独立SharePoint网站。无论是否应用自定义网站设计,都属于这种情况。当然,使用Group,实际上可以提供很多东西,而不仅仅是SharePoint网站集–包括用于群组对话的共享邮箱,日历,计划者计划等。如果您的协作策略基于Office 365组,那么这是完美的–但这需要详细考虑。组织不应盲目地涉足这一领域。

    ..但不会自动为组创建团队。

    值得注意的是,没有为该小组配备Microsoft团队–类似于从Outlook,Yammer,Power BI或其他端点之一创建组的情况。但是,如果需要,可以轻松地将团队添加为单独的步骤。任何有权创建团队的用户在创建团队时都会看到此选项:

    COB创建新团队-1

    COB创建新团队-2

    在所有这些方面,您应该考虑您的策略是否基于可以由任何用户创建的Office 365组(默认),还是您喜欢做其他事情。这是一个相当大的主题,但是这里有几个选项,包括:

    • 为最终用户提供一种创建方式(或简单地 请求) SharePoint网站是 组,即它们是经典的独立SharePoint网站集
    • 通过将Set-AzureADDirectorySetting命令与"GroupCreationAllowedGroupId"参数以将组创建限制为特定组的成员(例如I.T.工作人员)– see 管理谁可以创建Office 365组 了解更多信息
      • (注:Microsoft最近澄清了启用此选项的许可要求–能够创建组的用户必须具有Azure AD Premium许可证,但组织的其余部分则没有)
    • 以上两者
    • 唐’t use Groups 在 所有
    • 为最终用户提供一种创建方式(或简单地 请求) 一个网站 Office 365组,但使用如前所述的自定义窗体 或完全自定义的界面 (例如,因为您有开箱即用的UI无法满足的特定要求)

    总体而言,您可以’真正进入团队站点的站点设计而无需考虑协作的更多方面。哦,请记住,如果您提供以下网站的设计 通讯网站 (而不是团队网站), 这些不是组连接的站点。顺便说一句,鉴于大多数通信站点的性质,我认为微软在这里打了正确的电话。

    5.单独使用网站设计不需要Azure

    大多数使用PnP的SharePoint网站模板实现也都使用Azure。当然如果 自助服务 涉及到,典型的安排是让用户通过一个表单来请求站点,该表单将一个项目添加到列表中。因为网站创建/模板应用程序需要一些时间,所以它需要一个异步过程,因此通常在其中某个地方存在一个带有Azure Web作业或Azure Function的Azure队列–这很繁琐,然后在站点可用时通过电子邮件向用户和一些管理员发送电子邮件。 PnP设置库提供了许多此类构建块。

    但是,我们经常遇到使用Office 365及其它的组织’服务,但尚未使用Azure或任何竞争性云平台(例如AWS)。当然,任何Office 365实施者都知道通过使用Office 365,组织实际上是在下面使用Azure AD,但是实际上我们’在谈论是否’可以将远程SharePoint代码(例如PnP)部署到云中。通常,InfoSec或合规性小组尚未验证对组织是否可行,并且可能有充分的理由说明Office 365可以,但是其他云服务尚不可行。

    因此,网站设计本身不需要Azure可能会令人信服。相信你’仅限于网站设计提供的模板选项,但“engine”将模板应用于网站的是Microsoft’在Office 365服务中运行的代码–无论是否使用PnP,都不需要自定义代码,因此基础结构要求稍微简单一些。

    6.网站设计不能在本地使用,但是PnP网站模板可以。

    除此之外,这里没有太多要说的。网站设计将来是否会用于本地SharePoint?很难说,但是’值得记住的是,PnP站点设置可用于在线和本地方案。

    7.网站设计的局限性

    一个大的警告,如果你’re hoping to use 只要 网站模板的网站设计是您’目前仅限于可以在网站设计中完成的工作。您现在可以在网站中添加/更改的内容列表是:

    • Add 清单:
      • 设定标题
      • 设定说明
      • 添加栏
      • 添加内容类型(注意–它必须已经存在!网站设计尚无法提供新的内容类型)
      • 设置字段自定义格式(使用 新的基于JSON的格式)
    • 套用主题
    • 加入中心站点(尽管中心站点尚未启动)
    • 设置网站徽标
    • 添加导航链接
    • 触发Microsoft Flow

    注意– this 清单 will change over time. See the 网站设计JSON模式参考 有关每个操作的最新图片和详细信息。

    当我考虑其他事情时,我们经常更改(使用PnP模板)–更改站点区域设置/区域设置,激活功能,提供新主页,添加和配置Web部件,设置站点访问请求收件人,更改库上的内容类型/视图/应用版本控制设置等– 很明显,事情确实非常有限。对于我们来说,这完全阻止了目前自己使用网站设计的想法。幸运的是,调用Microsoft Flow的功能旨在为您补充站点设计/站点脚本的功能– so let’s explore this idea.

    的“site designs + PnP” approach

    简而言之,Flow可以触发一些远程代码,您必须执行这些代码才能对新创建的站点进行其他配置。这使您可以将其他事情与网站设计的工作联系起来–例如,仅在网站设计中,我的事情清单中的操作是不可能的。当然,这里要做的逻辑事情实际上是像在站点设计之前所做的那样,将PnP模板应用于站点。模式是:

    1. 网站是通过网站设计创建的
    2. 应用网站设计步骤
    3. 自定义Microsoft Flow称为–这会将包含新站点详细信息(例如URL)的项目放入Azure队列
    4. Azure队列使用QueueTrigger来启动Azure功能(或Web作业,如果您愿意)
    5. 该功能将PnP模板应用于站点

    那里’有关此方法的一些早期文档, 从站点脚本调用PnP供应引擎。该文章显示了使用PowerShell编写的功能,该功能使用SharePoint外接程序身份验证回Office 365,但是您也可以选择使用Azure AD和ADAL.NET/ADAL.js进行身份验证的C#或node.js代码方法。无论哪种方式,’为了使此运行,需要在Azure中进行一些工作。

    当然,这样做的好处是,您可以解锁满足站点要求所需的任何功能,但可以利用开箱即用的UI来创建站点(并且事实已经很好地完成了。 -in到Office 365 / SharePoint Online)。鉴于PnP站点配置继续扩展’的功能,我们现在可以自动部署包含SPFx Web部件和扩展,甚至SharePoint加载项的应用程序包,我觉得这种方法很常见。 确实,我认为我们会实施“minimal”网站设计,基本上只调用Flow,而整个模板的实现都在PnP模板中处理。

    结论

    听起来像我’从我的角度出发,我对现场设计有所了解’m raising, but I’我没有我认为这是SharePoint Online的一个巨大发展– no longer 是 所有 站点模板解决方案的一部分留给了实现者,因为Microsoft现在正在处理某些元素(但从头开始很小)。我喜欢这样一个事实,即有人考虑过如何超越站点设计的功能,而我’确保工程团队正在特别考虑如何合并PnP模板。如果我是一天的王者,我本来希望将现有的PnP模板模式首先用作网站设计的基础(而不是引入另一种使用新JSON模式进行模板化的方法)–但是,我确实知道PnP引擎是开源/社区驱动的,并且不是核心Office 365平台的一部分,所以也许这就是原因的一部分。

    网站设计的引入肯定意味着,围绕SharePoint协作和网站配置策略还有更多选择! 配备尽可能多的信息是明智的–这将帮助您为您/您的组织做出正确的决定’s context..

    还请记住,网站设计仍处于预览状态(当前正在向Targeted Release租户推出)– hopefully it won’等到初始版本达到“一般可用性”,并且功能在整个开发过程中扩展时,时间过长。

    参考 - //docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-design-overview