If you want to create a new SharePoint site using the Client Object Model, you can use the class **WebCreationInformation **to specify the site’s properties and then create it by adding the site to the Webs.

However, it is required to pass a unique **TemplateType **as a parameter. This parameter is a string and must match with one of the names of the available templates.

To get the list of all available templates, you can run the command Get-SpoWebTemplate in PowerShell. The table below gives an overview of all available templates.

Image for post

As the libraries contained in the package Microsoft.SharePointOnline.CSOM don’t provide any enumerator for the available templates. I have created the following snippet.

using System.Runtime.Serialization;

namespace SharePoint.Models
{
    public enum WebTemplate
    {
        [EnumMember(Value = "GLOBAL#0")]
        GlobalTemplate,
        [EnumMember(Value = "STS#0")]
        TeamSite,
        [EnumMember(Value = "STS#1")]
        BlankSite,
        [EnumMember(Value = "STS#2")]
        DocumentWorkspace,
        [EnumMember(Value = "MPS#0")]
        BasicMeetingWorkspace,
        [EnumMember(Value = "MPS#1")]
        BlankMeetingWorkspace,
        [EnumMember(Value = "MPS#2")]
        DecisionMeetingWorkspace,
        [EnumMember(Value = "MPS#3")]
        SocialMeetingWorkspace,
        [EnumMember(Value = "MPS#4")]
        MultipageMeetingWorkspace,
        [EnumMember(Value = "CENTRALADMIN#0")]
        CentralAdminSite,
        [EnumMember(Value = "WIKI#0")]
        WikiSite,
        [EnumMember(Value = "BLOG#0")]
        Blog,
        [EnumMember(Value = "SGS#0")]
        GroupWorkSite,
        [EnumMember(Value = "TENANTADMIN#0")]
        TenantAdminSite,
        [EnumMember(Value = "ACCSRV#0")]
        AccessServicesSite,
        [EnumMember(Value = "ACCSRV#1")]
        AssetsWebDatabase,
        [EnumMember(Value = "ACCSRV#3")]
        CharitableContributionsWebDatabase,
        [EnumMember(Value = "ACCSRV#4")]
        ContactsWebDatabase,
        [EnumMember(Value = "ACCSRV#6")]
        IssuesWebDatabase,
        [EnumMember(Value = "ACCSRV#5")]
        ProjectsWebDatabase,
        [EnumMember(Value = "BDR#0")]
        DocumentCenter,
        [EnumMember(Value = "EXPRESS#0")]
        ExpressTeamSite,
        [EnumMember(Value = "OFFILE#1")]
        RecordsCenter,
        [EnumMember(Value = "EHS#0")]
        ExpressHostedSite,
        [EnumMember(Value = "OSRV#0")]
        SharedServicesAdministrationSite,
        [EnumMember(Value = "PowerPointBroadcast#0")]
        PowerPointBroadcastSite,
        [EnumMember(Value = "PPSMASite#0")]
        BusinessIntelligenceCenter,
        [EnumMember(Value = "SPS#0")]
        SharePointPortalServerSite,
        [EnumMember(Value = "SPSPERS#0")]
        SharePointPortalServerPersonalSpace,
        [EnumMember(Value = "SPSMSITE#0")]
        PersonalizationSite,
        [EnumMember(Value = "SPSTOC#0")]
        ContentsAreaTemplate,
        [EnumMember(Value = "SPSTOPIC#0")]
        TopicAreatemplate,
        [EnumMember(Value = "SPSNEWS#0")]
        NewsSite,
        [EnumMember(Value = "CMSPUBLISHING#0")]
        PublishingSite,
        [EnumMember(Value = "BLANKINTERNET#0")]
        PublishingSiteBlank,
        [EnumMember(Value = "BLANKINTERNET#1")]
        PressReleasesSite,
        [EnumMember(Value = "BLANKINTERNET#2")]
        PublishingSiteWithWorkflow,
        [EnumMember(Value = "SPSNHOME#0")]
        NewsHomeSite,
        [EnumMember(Value = "SPSSITES#0")]
        SiteDirectory,
        [EnumMember(Value = "SPSCOMMU#0")]
        CommunityAreaTemplate,
        [EnumMember(Value = "SPSREPORTCENTER#0")]
        ReportCenter,
        [EnumMember(Value = "SPSPORTAL#0")]
        CollaborationPortal,
        [EnumMember(Value = "SRCHCEN#0")]
        EnterpriseSearchCenter,
        [EnumMember(Value = "PROFILES#0")]
        Profiles,
        [EnumMember(Value = "BLANKINTERNETCONTAINER#0")]
        PublishingPortal,
        [EnumMember(Value = "SPSMSITEHOST#0")]
        MySiteHost,
        [EnumMember(Value = "ENTERWIKI#0")]
        EnterpriseWiki,
        [EnumMember(Value = "SRCHCENTERLITE#0")]
        BasicSearchCenter,
        [EnumMember(Value = "SRCHCENTERFAST#0")]
        FastSearchCenter,
        [EnumMember(Value = "TenantAdminSpo#0")]
        SharePointOnlineTenantAdmin,
        [EnumMember(Value = "visprus#0")]
        VisioProcessRepository,
    }
}

To access the **EnumMember **attribute, we have to use the following Enum extension method.

#software-development #development #coding #sharepoint #sharepoint-online

SharePoint Site Templates
1.80 GEEK