I know this is a weird question to ask, but I would like to know if there is any documentation/blog-article out there that explains the architecture of a Website content management system? More particularly, I am interested to learn more about how “widgets” are implemented.
I can’t remember which system it was that I’ve seen tis one, but in the “Page Layout view” it had the ability to allow the end user to select a widget (thumbnail gallery, contact form, etc) from a list, and drag and drop it onto custom areas of the page.
I know that this is not directly a programming question, but please could I seek advice/feedback on this.
Thanks!
I don’t think that any particular CMS architecture exists, there are many. What you call widgets might be something like a component-based view layer. The idea is to create view using component, which can be configured and reused. That is what asp.net uses afaik. On the other hand, many MVC frameworks don’t use components, because it is nature of MVC to have views, which are somewhat more coarse grained. The difference can be spotted easily and best compared between web aplications and GUI applications. Most MVC web applications use some sort of templateing engine to create views with at most some sort of partials – template embedding. In contrast, GUI frameworks present you “widgets” which are components of which you can compose your view layer.
The advantage of components lays in reusability, but rigidness and some coupling to the backend (their behaviour) is present.