The CMS Pattern - Thoughts On CMS (Part Two)

If we need to create small applications with specific requirements how could CMS provide a convenient solution ?
In most web application development we notice the existence of common requirements something that all websites should use like a database abstraction, template manager, multiple debug levels, events manager, locale support, installer ... etc.
- A website use generally one database type, so why do we need all RDBMS to be supported in a single application ?
- A website that use english only locale, don't need to run with all languages, but can add them anytime.
- Install, update or upgrade is always a problem with CMS solutions. Most solutions aren't developed with the idea to be extended this concern the installer solutions itself.
So what's are we inventing new ? The idea is to provide a flexible CMS solution on demand. And what's on demand mean ? It mean that there is a server that manage the CMS code development and allow to choose "easily" which package you need or a CMS Wizard that guide you to create your website. This will be ideal with a good CMS architecture.
This CMS have four main parts : Core, modules, plugins and templates.
We go back to the examples that I've given in the first part of this article :
- Blog = CMS {Core + Modules [categories + articles (plugins comment + anti-spam + trackback ...) + users (plugins registration + ....)]}
- Ad Management softwre = CMS {Core + Modules [Ads (plugins stats ...) + Compains (plugins stats ...) + users (plugins registration + purchase ...) + Basket]}
- E-Commerce = CMS {Core + Modules [Products (plugins : documentation, download, stats, galery ...) + Users (plugins registration + purchase+support ...) + Basket + ...]}
- News portal = CMS {Core + Modules [categories + articles (plugins comment ....) + users (plugins registration + ....)]}
We can do this with almost all kind of web solution, we write it as a mathematic equation and we'll notice that the difference between distinct solution is the plugins and the required modules.
The problems will be the maintenance of this kind of solution, and how to combine categories module with product, then with articles or both ? Yes that's what I was talking about in the title of these articles "Patterns". And about the install and upgrade of this solution, XML registry will help to keep informations updated of current packages and so we could manage easily to get upgrade when available and install them without stopping the website. Or maybe it will be stopped for few minutes of the upgrade automatically then on finish the website is back working.
In this way we're creating flexible solution, that can fit more needs than classic solutions. It is not a framework for developers only or single web application for specific use. A solution that target a BIG audience.
Of course the idea require to be more developed, specially code requirements, documentations, architecture, website, packages managements ...etc ...
Conclusion
As continuation of the first article, CMS is becoming a SCAM project because it was not designed to fit all websites needs, even if all websites are using finally CMS! like when we called AJAX Javascript+SSSL (Server Side Scripting Langage) it was like giving a new life to Javascript. CMS also need to be born again, but think with me for a new name !
To be continued ...

Subscribe to CMS Magazine's feed