SharePoint Content Deployment Myths
When using SharePoint for creating and maintaining content rich web sites the content deployment API provides a way of moving content from a source server to a destination server. For example if you have a team developing a content heavy Internet site or an Intranet site you are able to setup content deployment between servers. (Assuming you are using multiple servers in Dev > Stg > Prd). See my previous post about Multiple development servers and managing code.
First you need to understand that in a SharePoint deployment “content” can be hard to define. Say for example you are creating a dynamic rotating image gallery feature with an image and a description about the image and an URL link. In this scenario there are multiple roles involved in the design and build phases of this piece. These roled are developers, designers/integrators and content authors and owners. Whilst the roles content author and owner may not be part of a SDLC developers and designers are.
To enable the dynamic rotating image gallery the development team will need to build this functionality using the OOTB (out of the box) features such as Image libraries, lists and possibly content types. As part of this you’ll also need to create a master page with CSS and branding a layout page and possibly a web part for displaying the image library. The expected functionality of such a development is that it will allow a content author to submit an image to the image library and then the image and the associated description to go through a review cycle for approval and then publish these. The published image and description is then displayed to the end user at the end via the dynamic control in a page of the site.
Functionality
Look and Feel
Content
In the above list the items under “Functionality” is in most part code that will be written by developers. You can define code in a SharePoint deployment as artifacts that live “outside” of the content database and may have an assembly. Because the items under “Look and Feel” are placed within sites they can be classed as “Content”. Typically these items that live “outside” the database are as follows.
Items under “Look and Feel” may also live “inside” of the content database and in some cases may live “outside” of the content database. In any case you can manage both in a suitable manner to your deployment.Items that live “inside” the content databases are Lists, List Items, Images and Content Pages. The challenge lies in how you manage Master pages since they can be both content and code and deployed via solutions then activated as features on the sites.
Now assuming all this has been developed you need to be able to deploy these through to your production server. It’s highly risky to try and manually copy these to each server and is definitely NOT the correct way of deployment. This is where the Content Deployment API and functionality comes into play. However most people think of “content deployment” and they immediately associate this with content managed web sites. Actually the content deployment API is available for all types of SharePoint sites. Popular myths about content deployment include:
For the content deployment “Quick Deploy” feature to work, the source and destination site collections must have the SharePoint Server Publishing Infrastructure feature enabled.
Depending on how you want to deploy your content the API provides the capability via programming for developers and a simple end user enabled content deployment UI. (Read Stefan’s article series on Content Deployment)
Known issues with content deployment
Content deployment is not without it’s own quirks and issues and here are something’s that you’ll need to look out for.
Violation of PRIMARY KEY error KB936867 (hotfix available) > http://support.microsoft.com/kb/936867 Special character encoding problem KB938536 (hotfix available) > http://support.microsoft.com/kb/938536 Updating settings causes full deployment KB937208 (hotfix available) > http://support.microsoft.com/kb/937208
Please make sure that before you apply hotfix packages that you are having these issues.
More Articles and Resources
Plan Content Deployment - TechNet
SharePoint Content Deployment Wizard - CodePlex