I am once again pondering the question of whether to use a framework or CMS for the upcoming refresh the White Peak Software web site. I have gone back and forth on this multiple times over the years and I can never really decide which is better. And I ask this question often not just for my company web site but for customer web sites that I build.

A framework gives me great control and flexibility. I can design and architect the site to my liking. I can use the data store of my choice be it XML, a database such as MSSQL or Postgres, and I can implement site specific features that meet 100% of the requirements. But the site eventually reaches a point where the only thing needed is to publish new content. Create a new landing page for marketing, change copy on an existing page, add a new product page, and so on. This is when I start thinking "Man, I wish I had a really simple CMS in place."

A CMS manages the site content for me. A CMS really does make publishing new content a snap. And you get a lot of additional features, or add-ons, with a CMS such as blog engine, forums or discussion groups, user management, calendar, photo gallery...the list goes on. However, most if not all CMSs are built on top of some core framework (Plone uses Zope, DotNetNuke uses .NET, ExpressionEngine uses CodeIgnitor - I think). This allows developers to expand and enhance the CMS by writing their own add-ons and extensions. But to do this the developer needs to know the underlying framework, and if you already know the framework isn't it sometimes easier and or faster to work directly with the framework bypassing the CMS all together? Also, it's been my experience that many of the CMSs out there tend to meet only 80 to 90% of the requirements. So you get the ease of publishing new content but other areas of the site can be lacking unless, of course, additional code is written to make up for the missing functionality. It's a vicious circle.

So do you learn and master a framework and have ultimate flexibility or learn and master a CMS and have ease of use for managing content? And what about rolling your own "simple" CMS. It can be great experience in the beginning but it will eventually have limitations or even worse become yet another full feature CMS like those already available today. And if you end up writing your own full featured CMS you have to ask yourself "Would my time have been better spent learning and mastering an existing CMS, its framework and contributing to its community?"

Unfortunately I don't have any solid answers here. I guess the only real answer to the question should I use a framework or CMS is "It depends." It depends on a number of different factors unique to your situation, your needs, your time line, and so on.

So what have I decided for the White Peak Software web site refresh? Honestly I'm still a bit undecided. The site is currently implemented with ASP.NET and a home grown simple CMS mechanism. It has worked well for a number of years but I need more functionality on the site. Building on the current implementation would take too much time so I need a different approach. My original thought was to use PHP and Zend but then I discovered CodeIgnitor. CodeIgnitor led me to ExpressEngine and I thought "Ah, the solution for me. PHP+CodeIgnitor+ExpressEngine". But then I started looking at python for general programming tasks and thought "What would it take to use Python programming for web apps?" Not much I found out so I have decided to use Python.

The decision to use Python has lead me to look at a number of different frameworks and CMS solutions. And while I'm not 100% sure what stack I will select, I'm leaning towards Python + web2py. web2py is an enterprise ready framework for web based application. Web development using web2py is very easy and fast, and I really like the development experience on my Mac.

I guess it's safe to assume at this point that I will once again pick a framework over an existing CMS. What can I say? I'm a programmer and while the appeal for a CMS is there I still enjoy the flexibility and control I have by doing my own implementation using a framework.

Update: Here is a follow up posting that explains my own requirements and why I feel using a framework is better in my situation.

posted by Kirby | 08-Dec-2008 12:26 PM | comments (5)


This just came to me: Using a framework is great in the beginning but eventually you just need a better way to manage the content. That's the dilemma.

posted by Kirby Turner | December 8 10:47 AM


ExpressionEngine 2.0 will mesh with CodeIgniter, but in the meantime you're using ExpressionEngine tags, functionality, and where you desire, your own PHP embedded in the templates.

The real question, to me, is not whether a CMS or Framework is the better choice for your site based on which lets you do more with code -- It's which better serves your intent for the site and its content.

Slim Kiwi's web site is not a web app providing functionality to subscribers or the public. It's a content site where we need to update our portfolio, blog, sample rates, or other content easily.

For those reasons, a CMS is the right choice. I save the frameworks for heavy-lifting, and use the CMS to eliminate custom coding from a project where I need to focus on SEO and easy updating.

I say, go with the CMS, and, yes, make it ExpressionEngine while you're at it. You'll probably complete the project sooner, and be free'd up to keep working on the apps where you need to get your hands dirty.

posted by Mark J. Reeves | December 8 10:53 AM


thank you

posted by ally | December 15 07:23 AM


.Net Framework was open source even before it v1.0 release.Now you can even step in Framework's source code when you debug.The .NET Micro Framework has not been very successful, and yet it is key to the long term success of the .NET Framework as a one size fits all programming model for high level programming that still needs some performance and system-level ties...

posted by site de blackjack | February 17 04:55 AM


.Net Framework was open source even before it v1.0 release.Now you can even step in Framework's source code when you debug.The .NET Micro Framework has not been very successful, and yet it is key to the long term success of the .NET Framework as a one size fits all programming model for high level programming that still needs some performance and system-level ties...
http://www.cours-de-blackjack.fr/

posted by site de blackjack | February 17 04:56 AM

Add Your Comment

Comment:
(No HTML)

Name:
E-mail/Web site:
Your e-mail/web site will not be published on this site. It is optional and will only be used by me should I need to contact you directly.
 
By checking this option, this site will remember your name and e-mail/web site on future visits. Uncheck this option to have the site not remember who you are on future visits.
 
Enter the code shown above:
Copyright © 1999-2010 Kirby Turner.
Site software written by White Peak Software Inc, a provider of custom software and software development coaching.