Why Choose an Established CMS Over Building One from Scratch

asp.netcms

A lot of my research over the next few weeks will be into different CMS's. I've already had a brief look at episerver and umbraco. While reading into these systems I can't help but think that providing content management features are achievable without learning the details and structure of many of these (rather large) CMS platforms.

I have, in the past, been given projects whereby my role as a developer must be kept separate to that of an editor (makes sense). i.e. It was my task to develop the design and functionality of the site and my clients' job to update the content. I've achieved this by also implementing a sort of 'portal' on which there were a couple of pages that would accept text input and picture uploads etc. (basically, whatever content they wanted), record this new content to the database and then by design the code-behind would read all this from the database into relevant controls (repeaters for example).

For me, this has been an effective enough way of my clients managing the content to deploy with my solutions. I know that I am wrong – and that CMS's are preferable to those that are built from the ground up – but other than the matter of cost, why?

Best Answer

You use an existing CMS to get rid of the weight of features that are probably important to the users that you don't want to have to keep track of.

EPiServer, Umbraco, Orchard, etc all have built in options for keeping track of things like versions, what content is linked to by other content, how to build forms, etc. And beyond that they have events which you can hook to modify them as you see fit.

They typically have thousands of hours of troubleshooting already done, so why not take advantage of those. Especially in the free or open source versions where it literally costs you nothing but the time learning their APIs which I can nearly guarantee is less time than you'd spend recreating that functionality.

So unless you don't need to rebuild the functionality they provide, why not use something already known to work well?

Here is just a brief list of features existing that you would not have to implement on your own:

  • content versioning
  • workflow
  • page link status reports
  • wysiwyg editor customization
  • content modeling (page types / document types)
  • content retrieval APIs
  • documentation / training for both editors and developers
  • object caching strategies
  • content querying systems for searching
  • content hierarchy structures (in CMS's where content is in a tree form anyway)
  • editor views
  • admin views
  • access control
Related Topic