Content types publishing across site collections - SharePoint 2013

I was working on SharePoint 2013 project for operations management. We had to create an operations portal to manage projects. After analyzing the requirements , limitation and threshold,  we decided to create a site collection per project. The main reasons was :
  • A content database size exceed 200Gb to avoid performance issues and to be able to use default backup/restore operations.
  • Ability to use different database servers for differents projects
  • Ability to move a project space from one content database to another
One of the issues that we have encountred is content type management. We had to create the same content types in each site collection and for every change in one site collection, we had to replicate it on the others.

We had two choices to solve this issue :
  • Custom development
  • Use a default SharePoint feature
Solving the issue with custom development could take us time that we haven't. We had to search SharePoint features to see if the is something that could help us.

After some research, we found that the SharePoint Managed Metadata service could be helpful for us. We will use the content type publishing feature of the Managed Metadata service.

To configure the service we have to follow the steps below :
  1. Create a site collection (Hub) that will host the content types that will be published.
  2. Configure the Managed Metadata Service to connect to the recently created site hub.
  3. Configure the Managed Metadata Service proxy to consume content types from the created hub
  4. Create content types in the Hub site and allow publishing
  5. Verify that the published content types are available in the other site collections

1. Create a site collection (Hub) that will host the content types that will be published.
  • Create a new site collection
  • Go to site collection feature
  • Activate the feature



2. Configure the Managed Metadata Service to connect to the recently created site hub
  • Go to central administration -> Application management -> Manage service applications
  • Select the "Managed Metadata service" and click "Properties" in the ribbon
  • At the bottom of the page , put the adress of your newly created site collection in the "Content Type hub" field
  • Click "Ok" to validate. The hub adress could only be updated using powershell



3. Configure the Managed Metadata Service proxy to consume content types from the created hub
  • Go to central administration -> Application management -> Manage service applications
  • Select the "Managed Metadata service " proxy and click "Properties" in the ribbon
  • Only check the 3rd and 4th checkboxes
  • Click "Ok"



4. Create content types in the Hub site and allow publishing
  • Go to hub site collection
  • Create a new content type
  • Add your custom columns
  • Click on "Manage publishing for this content type"
  • Select "Publish" and then "Ok"
 


5. Verify that the published content types are available in the other site collections
  • You have to wait a little bit until the synchronization job is executed
  • Go to a site collection different from the "Hub site collection"
  • Go to "Site settings"
  • Under "Site collection administration" click on "Content type publishing"
  • We will get the content types that have been published from the "Hub site collection"
     

     


     

     


 

SharePoint 2013 Farm documentation tool (SPDocumentor)

I have been working on a SharePoint 2013 project and one of my tasks was to document the server farm.
Documenting the farm manually takes too much time and i wasn't able to buy a third party tool to do that work.
I decided to create an application to automate the documentation process.
I called the tool "SPDocumentor" and i've published it on codeplex.
https://spdocumentor.codeplex.com/releases/view/112882
In the current release, i'm just generating documentation of the farm and web applications. I'll be working on it to document the : "Jobs, Site collections, backups ..."
The tool uses the SharePoint object model to access farm information and the "DocumentFormat.OpenXml.dll" to generate the target word document.