« Building a Content Management System with Prototype | Main | Seagull 0.6.2 Released »

CMS Generator : Abstract, Design and Generate

I have been working for many years on web application generators, and use them in various technologies. One of the very interesting usage that I have found is to generate custom CMS applications using a Partial Class Generator. The concept is not easy for first implementation, but once you have the suitable abstractions, the application model, and the design of the generator, create custom CMS become so much fun !

generator.jpg

Abstract as you can

The CMS generator start from the beginning and creation of abstraction at different levels : database, templates, and even forms. The abstraction level help considerably in application design to make it more easy to customize at the generator level.

Application model

If you have the necessary abstractions, you can develop a simple application model with basic functions : list values, edit, add new, search, preview ... etc. This model have to be written as template, not the common templates you know, but an application template.

Application templates

We usually talk about templates as HTML fragments, assembled by the web application to generate the final layout. "Application template" are not very different, but are used to generate the application itself instead of generating a layout to the enduser. This is probably the most difficult thing to do after designing the application model.

Getting things done

Now for example to manage contacts, you have to create obviously a table with name, email, tel, address ... etc. Then the generator should be able to access your database, check the contacts table, parse the application template, and replace fields accordingly, to finally provide a basic working application with the model previously defined.

while generators aims to reduce development time, designing application models and coding features, they are not able to simulate all scenarios. That's why I always use generators to get the basic features, then add some personalizations depending on the application. And that's why I mentioned in the beginning the Partial Class Generators, since Tier generators require more development and will not necessarily give you the final result you are looking for.

Add to this some intelligence and you are able to archive personalized models so you can use later for other CMS applications.

Conclusion

There are many generators online that you can have a look on their capabilities, but the generator CMS proved its capabilities to provide a powerful customized content management experience and reduce application development time and bugs. Creating a custom CMS is a strategy that companies can adopt, or use instead a single CMS package that could be personalized, the difference here is BIG in coding time !

I gave a speech on PHP Code Generators last year, you can find more information there on Generators.

Bookmark this article at these sites
Post a comment





(Email will remain hidden)





Please enter the security code you see here




Related entries
Email to a friend
Email this article to:


Your email address:


Message (optional):