In this scenario we will evaluate implementing tags and note boards on a site which is target of content deployment, i.e. where content is deployed by content deployment job.

Problem Statement

Many organizations have requirement to implement publishing environment such that production site is not edited by the end user. They want to implement staging-production pattern in which first the content is created on staging environment, reviewed and approved. Once approved, this content is moved to production environment where it’s visible to end users in read only mode. Neither content creators, nor viewers should be able to change content. Content Deployment feature in SharePoint 2010 helps achieve this objective of moving content from authoring site to production site.

One of the new features in SharePoint in social space is tagging and note boards. This let people tag the pages, collaborate and discuss about content of sites. One of the requirements of Content Deployment is that you can’t change the target of deployment. It’s only 1-way. Content can only be created on authoring site and no edits should be done on production. If you try to change content on production, it can lead to unexpected results including deployment job failure. The problem now becomes is how to let people tag on production site without any issues. I tried to mpelmet this setup and analyze the behavior of SharePoint2010.

*This is not a formal guidance from SharePoint team or Microsoft Corporation*. I personally feel its a valid implementation and you should check with Microsoft Support before using it in production.

Pre-requisites

Following is the setup of my SharePoint farm

  1.  Central Administration running on https://moss02.taj.local. It’s on SSL
  2. Single Farm with both the authoring and production farm
    1. Authoring Farm Url: http://author. Publishing Site template
    2. Production Farm Url: http://prod. Empty Site, no template applied to the site
  3. User profile Application configured and profile synchronization working
    1. Profile Database: UserProfile
    2. Profile Sync Database: UserProfileSync
    3. Social Database: SocialTagging 

Setting up Content Deployment

You can follow the steps provided in following link to set up the content deployment

http://technet.microsoft.com/en-us/library/cc627268.aspx 

Setting up User Profile Application and Synchronization

There is information available on TechNet to do this but it’s little spread across and confusing to understand. My fellow MCM Spence Harbar has done good job of documenting the whole process. I will recommend you use his article to setup profile synchronization http://www.harbar.net/articles/sp2010ups.aspx

Read-Only Behavior

In this step we tested how tagging doesn’t affect the content database. Tags go into social database and should not affect the DB. http://author to http://prod , go to the prod database in management studio. Go to the content database for your prod site. In my case it is WSS_CONTENT_PROD. Go to database properties, options, State and set the Database read-only property equal to true.

After running the content deployment successfully once from

 

What this will do is mark your content database as read only. Now one can’t add/edit content to the database. One of the new improvements in SharePoint is that it can make out when the database is in read-only mode and accordingly trim the UI so that actions only show options for read-only operations. This is cool stuff and when we refresh the http://prod  site, we will see the UI trimmed. Now our content deployment should be working fine and the site is in read only mode.

 

The next thing to check is the tagging control on top of page. Interesting thing is that it still shows up enabled. That means you can tag stuff on the page. This control connects to the Social DB and figures out that since it’s not in edit mode, it should be shown as enabled. Try to tag this page with a tag. I was successfully able to tag content. This demonstrates that there is no write operation performed on the content database when you use this feature.

The next thing to test was how content deployment will behave after this tagging on page. To test this, I made changes on the page in my http://author site. Approved the page and published it.

I went back to my WSS_CONTENT_PROD database and marked read-only attribute to false. This will again light up the edit actions on the http://prod site

After this I ran content deployment job to move the updated page to production. The job ran successfully. I ran multiple cycles with edits and this thing worked well.

Now if we go back to the production site, all works well and I can see the edits done in author on my prod site. And yes I was able to see my tags also on the page on top. This thing really works like a charm. These are same tags which were created after first run of content deployment.

Test in your environment and give your comments. I hope SharePoint team will officially support it.