SharePoint New Team Site. Inside Out

New Team Site which has been released for SharePoint Online became available for on-premise SharePoint 2019 Server.

Availability of this site template for on-premise SharePoint instance makes it possible to figure out how it works and what it actually is.

I've looked through assemblies, files such as configurations, XML-definitions and so on. And after that I can show you what there are under the hood.

Team Site

New Team Site is a new configuration of existing SharePoint site template - STS. Identity of the new site template - STS#3. Let's go through the list of existing and new STS templates:

STS#0 - Team site (classic experience).

STS#1 - Blank site. Hidden since SharePoint 2016 released.

STS#2 - Document Workspace. Legacy site template released with MOSS 2007 to work together on a document. Hidden and obsoleted site template. Never use it.

STS#3 - New Team site about which we are talking in this post.

New Team Site template can be used only for creating a root site, at least using UI. You can always use PowerShell command like the following to create subsite based on the new team site template (STS#3):


New-SPWeb -Url https://sharepoint/subsite -Template STS#3 -Name "New Team Site"

New VS Classic

What's the difference between Team site (classic experience) and new Team Site?

The following table contains Site and Web features which used by Classic or new Team Site:

Scope Feature Classic Team Site New Team Site
Site Basic Web Parts
Site Three-state workflow
Web Document Library instance
Web Team Collaboration Lists
Web Site Notebook
Web Document Library instance
Web Mobility Shortcut URL
Web Wiki Page Home Page
Web Getting Started
Web Minimal Download Strategy
Web Groupify Button
Site Site Page Resources
Site Visio Web Access
Site Ratings
Web Default SPGroups SiteMaster
Web Default SPGroups Async
Web MUIWeb
Web Site Pages
Web Group Homepage

As you see the difference is great. Even classic team site template has been modified and is not the same as classic team site in SharePoint 2016.

Minimal download strategy (MDS) is not in use anymore.

We'll miss you "Working on it..." message.


Site Pages

New team site has a new modern Pages for which there is a special content type (ContenTypeID - 0x0101009D1CB255DA76424F860D91F20E6C4118):


Authoring Canvas Content and Page Layouts Content properties are used to store content of the page. Field values for this page:


is the following:


<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 property contains JSON-data for the control like the following:


{
    "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 attribute stores webpart properties in JSON format:


{
    "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

Document Library Instance feature just for adding Shared Documents library on the Quick Launch Bar.

Default SPGroups

Default SPGroups* features create user groups for the site.

Group Homepage

Group Homepage feature creates a home page based on defined in the feature home.aspx file. Content of this file:


<%@ 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-->

As you can see it's empty file inherited from Microsoft.SharePoint.WebControls.ClientSidePage class:


That's a new class for SharePoint. And it's absolutely empty:


public class ClientSidePage : ClientSidePageBase
{
}

Summary

New Team Site for SharePoint is a part of new experience. There is no any old-school approach:

Wiki Page. SharePoint is not the best solution to create wiki solutions. Just create pages and links between them.

Dedicated UI for mobile devices. Modern web applications use responsive design. Separate mobile view is simply not necessary.

Minimal Download Strategy. All content rendered on client side. So, there is no place for MDS in new experience.

Getting Started. Old quick start guide which was used by nobody. Needless feature.

Migration. New pages can contain only new web parts based on SharePoint Framework. Therefore there is no way to migrate existing page to new one unless someone has released a special tool for that.

As for me new Team Site template is a very good step forward. No any old legacy feature just for backward compatibility.


Share

Comments