After a lot of frustration with DotNetNuke, which was quite a while ago, and some recent adventures with mojoPortal (by the way, Joe, the maintainer and almost a single contributor for this project, does excellent job fixing all the bugs in no time after they are reported), I decided that no way I'm gonna use a CMS again, ever. Yes, I used it on my own site, http://sm-art.biz, but then, it required no custom modules.
The problem is, all these frameworks focus on how simple it is to get your site up and running, provided that you don't need any additional functionality, other than included in one of the million modules. When you start to add something that is unique to this site, you quickly realize that it's much simpler to start from scratch than follow the module development guidelines. At the very least, they require that youк module inherits from a base class, and is initialized in such a way that it is totally impossible to test it outside of the framework.
So, here are the qualities of a CMS I wish existed. Has anybody seen this puppy?
1. Respect the composition-over-inheritance principle. Don't make me inherit, let me use a plain old ascx control.
2. Make it simle to plug this control into my site. Don't make me write these manifests and put sql scripts in a predefined place. However, I do want this possibility to exist, and also custom installer classes.
3. Use Convention over Configuration, it's the latest trend.
4. Make it decoupled. I don't want to see a column "totalforumposts" in the users table.
5. Use Ivonna for testing, I don't want a buggy product :)
6. I want to go from a regular site to a CMS and back in small steps. I want to be able to use various parts of it independently and switch off other parts if necessary. It should be more like a framework. There shouldn't be one "switch to a CMS" step, but rather start using various pieces one by one.
Until I see something like this, I'll be trying to write my own.