If you want to standardize Information Architecture (IA) across your SharePoint Online environment at scale, you’ll likely want to leverage some automation to do it. I recently posted a Twitter Poll asking how others were doing this today. Even though there were only 61 votes, the conversation that ensued made me realize I wasn’t the only one wondering which option is the “right” one.
Currently, there are 4 ways to automate an IA push: (with rumors of a future fifth)
- Content Type Hub
- SharePoint CSOM APIs
- PnP Provisioning
- Site Scripts and Site Designs
- SharePoint Hub IA? (tentative)
Have I missed an option? If I have please let me know!!!
Content Type Hub
This feature is supported by Microsoft. (Content Type Hub)
This feature has been around for a long time and uses a site collection identified as a Content Type Hub to store and manage the IA components (site columns and content types) you’d like to publish to all subscribing site collections thru a syndication process. I’ve used this feature in the past in SharePoint on-premises environments and have had a fair amount of success with it. However, people I trust in the community have had a different experience when using it, particularly in SharePoint Online environments, causing me to pause and re-evaluate whether I should continue to use this for new solutions I’m provisioning.
Issues I’ve heard from the community are:
- You don’t control the timing of the syndication process like you can in SharePoint on-prem which causes issues at times
- In environments with a large number of content types, it does not scale well
- Removing artifacts from subscribing site collections is problematic and won’t always remove things you want removed
Check out these resources:
- Dear SharePoint Online Content Types Hub… What’s going on? By Jasper Ooserveld
- Better Content Type Hub Management idea from SharePoint’s UserVoice
If you have other issues, let me know and I’ll include it in this list and ensure it’s added to UserVoice.
SharePoint CSOM APIs
This feature is supported by Microsoft. (Create SharePoint Content Types by using CSOM)
You can use the SharePoint CSOM APIs to programmatically create content types and site columns and link them together. This option is highly customizable since you’re in control of the code however it will require a skilled developer. Depending on the specific requirements you have and the skill level in your organization, this may or may not be a suitable option for you.
This feature is supported by Microsoft and the open-source community. (PnP PowerShell overview)
The PnP (Patterns and Practises) provisioning technique has been around for awhile and is an excellent way to deploy IA components across numerous site collections. It can be used for very complex IA scenarios and updates. Check out this recent post by Tom Castiglia called Tips and Tricks for automated SharePoint site provisioning with PnP for some excellent guidance on how to start using them. For this option, you should have someone with a strong IA technical background who understands SharePoint IA and the effect changes have.
Site Scripts and Site Designs
This feature is supported by Microsoft. (SharePoint site design and site script overview)
This is the relative newcomer to the block. It is comprised of JSON file(s) to define the IA components. A Site script is created from a JSON file and any number of these can be combined to form a Site Design. You can then apply this Site Design to both new and existing sites. I really like this option since you can control the JSON files and organize them for re-use across multiple site scripts. This option is early-on in its development and doesn’t have all the capabilities that PnP has (localization, maximum 30 actions allowed) so depending on your requirements, this may not be a good/sufficient option for you.
Like the PnP PowerShell option, this option requires a strong technical foundation for IA and then building and deploying the scripts.
SharePoint Hub IA… or whatever vNext is
In several sessions at the recent Microsoft Ignite conference in Orlando, I heard reference to standardizing IA within a SharePoint Hub. Although I don’t know how this will be implemented, this may prove to be a promising option. Imagine defining your IA once in a SharePoint Hub and any site joined to it would automatically inherit the Hub’s IA! This is similar to the concept of the Content Type Hub syndication process, but done at a more targeted site collection level. I’m eager to learn more about how this is implemented in the coming months, but until that happens, this is not an available option.
Which one should you choose?
Having options is nice and all, but if you’re faced with building a solution today (as I recently was), which option should you choose? To be clear, all options require a strong understanding of IA concepts for pushing out changes, so you don’t get yourself (and your environment) into trouble.
I believe it primarily comes down to these 5 factors:
- How complex is the Information Architecture? If it’s relatively simple, likely any of the options would work, including the Content Type Hub. However, see points 3 and 5 below. 😊
- How often do you anticipate changes will occur? Trust me… prepare for future changes to the IA and you won’t get into trouble. Provisioning a net new IA is the easy, “happy-path” part – it’s the ongoing changes where the complexity happens. I believe Site Scripts/Site Designs is a great option to handle ongoing changes however I haven’t tested all types of changes that can happen in real-world. If Site Designs can’t do what you want it to and/or your requirements are more complex, PnP scripting may be a better way to go.
- How big is your environment? Do you have 5, 10, 100, 1000 or 10000 site collections you’re wanting to sync the IA changes across? Do you have millions of items/documents using the Information Architecture components? If you do, then whatever solution you come up with will need to scale across potentially many site collections. With the limitations of the Content Type Hub above and the fact that pushing updates across a large environment could potentially take weeks using that technique, I would not choose it in large environments. For the other options, you would be able to script out, and therefore control the process.
- Do you have someone in your organization with a strong IA technical skill set? If the answer is no, then you should get one. Implementing IA in your environment and publishing it across your organization will require an advanced understanding of SharePoint and Information Architecture. This is not a place to skimp on skill.
- What’s your organization’s stance on legacy versus new? Some organizations will want to move away from the Content Type Hub option simply because no new investments from Microsoft will be made in this feature and therefore building a new solution reliant on it is a bad idea. It’s not the future. This, in conjunction with the issues I identified earlier in this post, are valid reasons for not choosing it as an option. The fact that new investments are being made in both Site Design and PnP templates provides some level of insurance that your provisioning solution will stand the test of time moving forward.
My Current Stance
Today, I’m going to start with Site Scripts and Site Designs to replace the functionality currently being provided by the Content Type Hub feature. Since Site Scripts and Site Designs are relatively new and may not have all functionality I’ll require for a given provisioning scenario, I may have to revert to the more full-featured and robust PnP provisioning engine.
My stance on this may change over time as new capabilities are introduced, but I believe for now it’s a sound approach considering Microsoft is making current investments in this new technique. It works, its flexible, it can be controlled, and I believe it’ll only get better over time.
What’s your stance? I’d love to know.
Thanks for reading.