views:

98

answers:

2

I understand the classical definition of a CMS: it's a "webapp" the main purpose of which is to handle "content", probably that's generated by its users (kind of like all of us here at SO and the content we provide is text and code).

I also always got the impression that creating a CMS is supposed to be a Really Tough Thing. But how so? Isn't a CMS just a webapp like any other. I would guess that many webapps are tougher to code than a traditional CMS.

If I were to think of creating a CMS like creating any other webapp, would I be wrong?

+2  A: 

I suppose you can consider a CMS as any other kind of web application ; only thing is there are lots of functionalities that are both required, and/or expected by users.

A few of those which come to mind :

  • authentication / access control
    • to the application, of course
    • but also to every kind of data
    • and even, maybe, each field of each type of content
  • a bit of ergonomy -- especially if targeting not technical users.
  • dealing with media (photos, videos, music, flash content, ...) ; both upload, linking, and consultation
  • if designing a CMS that's not oriented toward a specific website, you have to create something generic, that can work even in cases you didn't think about
  • extensibility : you will create the core of your CMS ; but users will most likely want to add some additional functionalities
    • which requires a nice extension/plugin system
  • internationalization / localization

Well, that's just a really short list, actually ; and there are probably lots of other ideas that could come to mind...

So, yeah, a CMS is a web application -- but it has to be generic, if you want it to work for more than just one (kind of) website.

Pascal MARTIN
+1  A: 

Read up on CMS and DMS in wikipedia. Then it should get clear that a good CMS is really a big task.

Especially templating, workflow (fixed ones, support for custom ones), user hierarchies and so on... are hard to get right and still make them easily adaptable and customizable.

And don't forget that a CMS doesn't have to be a WebApp, but there are so called WebCM-Systems.

Aside this WebCMS are like every other big complex WebApp.

Content management system

Document management system

jitter