SharePoint Content vs. Code - A Parable
The difference between Content and Code, and between Publishing and Code Deployment, can be a very difficult thing for the Stakeholders in an Enterprise SharePoint implementation to grasp. So for what it is worth, I recently told a client the following parable, and the light went on... Perhaps the story is worth retelling.
Imagine a beautiful lush green meadow called SharePoint. And this meadow is filled with all these happy productive business people having a great time playing with this beautiful fragile stuff called “Content”.
And off to one side of this meadow is a deep abyss. And at the bottom of this abyss, if it has a bottom, there are these mean smudgy IT people who spend all their time mining this radioactive stuff called “Code”. And after these smudgy IT people dig up this ugly dangerous Code stuff, they pound it with big hammers, and they burn it in blast furnaces, and then they pack it into these huge heavy metal boxes, which they finally have to carry on their backs all the way up the side of the Abyss -- through the land of Dev, through the land of Test, and through the land of UAT, and finally to the beautiful SharePoint meadow.
Now if you are one of these happy fun loving business people, the last thing you want is for some of your beautiful Content to fall off the side of the SharePoint meadow and into the IT abyss – cuz those stubborn smudgy IT people will treat it just like that Code stuff, pounding it with hammers, blasting it in blast furnaces, and it may take weeks or months, sometimes even years for an IT person to scale the abyss all the way back up to the meadow with a metal box full of now unrecognizable Content…
In SharePoint terms, a rule of thumb is that Content is something, that when deployed, goes completely into a Content database. If on the other hand, when you deploy some stuff, if some part of it, even a tiny smidgen, ends up somewhere other than a Content database (such as the GAC or file system on a web server) – then that is nasty radioactive Code.
When you upload a word doc, or an Excel spreadsheet, or a codeless InfoPath form, or you save a SharePoint Designer workflow, or you create a new content type, or a new list or library or team site -- all of these things end up completely in a content database and are in fact Content.
But sometimes those nice happy business people do want to put their Content stuff through a publishing process so it can be considered and approved by other happy business people. No need to bother those smudgy IT people though, they will only slow things down and/or mess them up…