Новый сайт группы SharePoint. Как это работает

Новый сайт группы, который был выпущен для SharePoint Online, становится доступен в SharePoint 2019 Server.

Доступность нового типа сайта в on-premise SharePoint делает возможным изучить его и разобраться как он работает и чем по сути является.

Я просмотрел новый сборки и файлы (конфигурация, XML-определения и т.д.). Теперь я могу рассказать и показать что под капотом.

Сайт группы

Новый сайт группы - это новая конфигурация существующего шаблона сайта SharePoint - STS. Идентификатор нового сайта - STS#3. Давайте пройдемся по списку сайтов на основе шаблона STS:

STS#0 - Классический сайт группы.

STS#1 - Пустой сайт. Стал скрытым начиная с выходом SharePoint 2016.

STS#2 - Рабочая область документа. Устаревший шаблон сайта, выпущенный вместе с MOSS 2007 для совместной работы над документами. Скрытый и устаревший шаблон. Никогда его не используйте.

STS#3 - Новый сайт группы, которому посвящен этот пост.

Новый шаблон сайта группы может быть использован только для создания корневого сайта коллекции сайтов, по крайне мере через веб-интерфейс. Вы можете всегда использовать PowerShell для создания дочернего сайта на основе нового шаблона (STS#3):


New-SPWeb -Url https://sharepoint/subsite -Template STS#3 -Name "Новый сайт группы"

Отличия нового шаблона от старого

В чем разница между классическим сайтом группы и новым?

В таблице ниже содержится информация о возможностях, которые используются этим шаблонами сайтов:

Область Возможность Классический сайт группы Новый сайт группы
Site Basic Web Parts
Site Трехэтапный рабочий процесс
Web Document Library instance
Web Списки для совместной работы группы пользователей
Web Site Notebook
Web Document Library instance
Web Mobility Shortcut URL
Web Домашняя вики-страница
Web Приступая к работе
Web Стратегия минимального скачивания
Web Groupify Button
Site Site Page Resources
Site Веб-приложение Access
Site Ratings
Web Default SPGroups SiteMaster
Web Default SPGroups Async
Web MUIWeb
Web Страницы сайта
Web Group Homepage

Как видно разница велика. Даже классический сайт группы был изменен и отличается от сайта групп в SharePoint 2016.

Стратегия минимальной загрузки (MDS) больше не используется.

Мы будем скучать по этому сообщению.


Страницы сайта

Новый сайт группы использует новые страницы, которые описываются специальным типом содержимого (ContenTypeID - 0x0101009D1CB255DA76424F860D91F20E6C4118):


Свойства Создание содержимого холста и Содержимое макета страницы используются для хранения содержимого страницы. Вот такая страница:


хранится таком виде:


<div>
    <div data-sp-canvascontrol="" data-sp-canvasdataversion="1.0" data-sp-controldata="">
        <div data-sp-rte="">
            <p>SharePoint 2019 Preview</p>
        </div>
    </div>
    <div data-sp-canvascontrol="" data-sp-canvasdataversion="1.0" data-sp-controldata="">
        <div data-sp-webpart="" data-sp-webpartdataversion="1.2" data-sp-webpartdata="">
            <div data-sp-componentid="">{GUID}</div>
            <div data-sp-htmlproperties="">
                <div data-sp-prop-name="title" data-sp-searchableplaintext="true"></div>
                <div data-sp-prop-name="persons[0].name" data-sp-searchableplaintext="true">Vitaly Zhukov</div>
                <div data-sp-prop-name="persons[0].email" data-sp-searchableplaintext="true"></div>
                <img data-sp-prop-name="persons[0].imageUrl" src="/_layouts/15/userphoto.aspx?size=L&amp;accountname=dev%5cvitaly"
                />
            </div>
        </div>
    </div>
    <div data-sp-canvascontrol="" data-sp-canvasdataversion="1.0" data-sp-controldata=""></div>
</div>

Атрибут data-sp-controldata содержит JSON-данные для отображения содержимого:


{
    "id": "cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",
    "instanceId": "cbe7b0a9-3504-44dd-a3a3-0e5cacd07788",
    "title": "Title Region",
    "description": "Title Region Description",
    "serverProcessedContent": {
        "htmlStrings": {},
        "searchablePlainTexts": {},
        "imageSources": {},
        "links": {}
    },
    "dataVersion": "1.4",
    "properties": {
        "title": "page",
        "textAlignCenter": false,
        "imageSourceType": 4,
        "layoutType": "FullWidthImage",
        "textAlignment": "Left",
        "showKicker": false,
        "showPublishDate": false,
        "kicker": ""
    }
}

Атрибут data-sp-webpartdata содержит свойства веб-части в формате JSON:


{
    "id": "7f718435-ee4d-431c-bdbf-9c4ff326f46e",
    "instanceId": "075b6015-60a7-4a7b-bfbc-61dedcec4607",
    "title": "People",
    "description": "Display selected people and their profiles",
    "serverProcessedContent": {
        "htmlStrings": {},
        "searchablePlainTexts": {
            "title": "",
            "persons[0].name": "Vitaly Zhukov",
            "persons[0].email": ""
        },
        "imageSources": {
            "persons[0].imageUrl": "/_layouts/15/userphoto.aspx?size=L&accountname=dev\\vitaly"
        },
        "links": {}
    },
    "dataVersion": "1.2",
    "properties": {
        "layout": 2,
        "persons": [
            {
                "id": "i:0#.w|dev\\vitaly",
                "upn": "DEV\\vitaly",
                "role": "",
                "department": "",
                "phone": "",
                "sip": ""
            }
        ]
    }
}

Document Library instance

Эта фича просто размещает ссылку на библиотеку общих документов на панели быстрого запуска.

Default SPGroups

Возможности Default SPGroups* создаются группы безопасности и ассоциируют их с сайтом.

Домашняя страница группы

Домашняя страница группы создает домашнюю страницу на основе файла home.aspx, который содержится в фиче. Содержимое этого файла:


<%@ Assembly Name="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"%>
<%@ Page Language="C#" Inherits="Microsoft.SharePoint.WebControls.ClientSidePage" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<!--no-store-props-->

Пустой файл. Сама страница унаследована от класса Microsoft.SharePoint.WebControls.ClientSidePage:


Это новый класс для SharePoint. И он абсолютно пуст:


public class ClientSidePage : ClientSidePageBase
{
}

Выводы

Новый сайт группы для SharePoint является частью new experience (ранее modern UI). Не осталось ни единого функционала, работающего "по-старому":

Вики-страницы. SharePoint не лучшая платформа для создания вики. Просто создавать страницы и ссылки между ними можно и без вики.

Отдельное представление для мольных устройств. Современные веб-приложения используют адаптивную верстку. Отдельное представление для мобильных устройств просто не за чем.

Стратегия минимальной загрузки. Весь динамически формируемый контент отрисовывается на клиентской стороне.

Приступая к работе. Старый вводный курс по работе с порталом, которым не пользовался никто. Бесполезная фича.

Новый сайт группы - хороший шаг вперед. И нет никакой поддержки старого функционала для обеспечения обратной совместимости.


Поделиться

Коментарии