During the last SharePoint Black Belts meeting we talked about deploying of all kinds of things in SharePoint. One of the topics was deploying and updating custom Site Definitions. Did you know that changing existing Site Definitions is unsupported?
Personally I’m using custom Site Definitions quite a lot. Every Web Content Management (WCM) solution I’m working on, is based on a custom Site Definition. It’s either for convenience or a must-have (like a customer who wants to be able to create a Topic site even if it’s 100% the same as a Blank Publishing Site). If I ever got a request from a customer to change something about the custom Site Definition, my answer would be: “Yes, I can change it. The changes will apply to all sites you will create from now on. The existing sites can be changed either manually or I can create a change script for you.”. It seems my answer is wrong…
During the last SharePoint Black Belts meeting we talked about deployments in SharePoint: how would you provision different things initially into SharePoint and what would you do if you ever had to update them. One of the things we have discussed were Site Definitions. At some point we peeked into the Guidelines for Using Custom Site Definitions, Configurations, and Templates section of the Windows SharePoint Services (WSS) SDK just to verify our opinion. It turned out we were all wrong about the update process:
Changing a site definition after it has already been deployed can break existing sites and is not supported.
What we found confusing though was, that the same SDK section confirms further on that changing existing sites by changing the Site Definition is unsupported. Existing sites should be changed using the object model while the changes to the Site Definition will be applied to all newly created sites:
Modifying site definition files to customize existing sites or lists is not supported. A good guideline is to use site definitions to modify sites that will be created, but to use the object model to modify sites after they are created.
So I’m confused right now: can we or can we not make changes to Site Definitions?
Another question that arises is: what other gems are there in the WSS/MOSS SDK? Wouldn’t it be easier for us if there was a separate section included which would clarify different unsupported scenario’s so we can be of better help to both community and the customers?
**Update **Some of the supported and unsupported scenarios are covered in the KB article: Supported and unsupported scenarios for working with custom site definitions and custom area definitions in Windows SharePoint Services, in SharePoint Portal Server 2003, and in Office SharePoint Server 2007.