A Framework or a CMS? What is better to choose?
While developing a website the first technical decision which needs you need to take is ‘what technical stack to use so that it meets all our requirement ?’, and somewhere in the process it also includes ‘What to choose – CMS or MVC framework ?’
In this article, I am sharing my personal experience which helps me to decide between CMS and MVC framework. But before that, lets us have a brief introduction of CMS and MVC framework.
What is CMS
CMS stands for Content Management System. As the name itself suggest it is a System or Tool which has rich set of default functionality for easily managing of contents. Most of the CMS started just as publishing or blogging platform, but with development of plugin and themes it got the power to do a lot beyond just publishing contents.
CMS comes with an admin site and a public site. Using the admin site you can install plugins and themes, also many settings can be managed easily. Public site is where a normal user can view all contents.
Advantages of CMS
- Comes with a default system, so you can just download, install and your blogging website is ready.
- Lots of Free / Premium ready to use plugins and themes are available. So just install and start using it.
- Developing time is less as compared to custom development, as it has some default functionality system present here.
- Very easy to use.
- Highly recommended for a blogging website, portfolio website, affiliate websites, classified websites, small webshops and similar websites.
Disadvantages of CMS
- Not at flexible as compared to custom development.
- Scaling can be an issue when userbase increases.
- Not every website can be built using CMS.
Examples: WordPress, Drupal Joomla. More
Framework
A framework provides a set of classes, functions, modules, library, helper integrated together to provide a well architecture pattern for development. Most popular framework design pattern is MVC (Model-View-Controller), in which presentation layers, database layers, and business logic are separated into different files and/or classes.
Most of the PHP framework doesn’t have a pre-build system. They only provides the function and classes which can be used by a developer to develop the system as per the need.
Advantages of frameworks
- Provides a well architecture design pattern which can be used for long development of project and helpful in maintenance.
- Highly flexible: as the system is custom developer you can develop each and every feature as per the need.
- Highly Optimized: The database and Codebase are developed to server a particular need. So both are highly optimized to perform that operation. But in case of CMS most of the things are generalized so that it can serve multiple purposes, therefore you can expect more time and memory complexity in the system.
- Highly Scalable: Custom web application can be scaled for any large number of audience. Also, advance scaling techniques like Master-Slave architecture, Memcache, Queuing can be used here when needed.
- Not prone to security issues if developed properly by an experienced developer.
Disadvantages of frameworks
- High development cost and time: As application development is done from scratch/foundation, development time and cost will be high. But having a proper foundation is the key for success of an application.
Examples: Laravel (Most preferred), Symphony, CodeIgniter, cakePHP, More
So, What Should you choose – CMS or Framework?
There is no particular answer to which should be chosen. It depends on few factor:
- What type of website / web-application are you developing?
- For applications where you need all functionality to be according to your custom need, Custom/bespoken development is the best choice.
- For applications where you need managing contents, portfolio website, classified website, listings websites, affiliate websites and similar kind of websites; CMS can be a good choice. These websites can also be built using frameworks.
- Many websites can be build using both CMS as well as framework, so choosing the one depends on below-mentioned factors.
- How much of resource do you want to spend?
- If we develop same web application, one using framework and another using CMS, the cost and time of development using framework will be generally higher. But custom development cost with unlimited flexibility going down the lane, CMS will have some restrictions. Also, you will notice a noticeable difference in the speed of the websites.
- How flexible do you want the project to be in future?
- How scalable do you want the project to be in future?
Hope the above make sense. Also, an expert web developer can help you better to make a good choice of your development stack.
As the http://symfony.com/ website says.
Choosing a framework must not be taken lightly; it is a long-term commitment. Make sure that you make the right selection!
Good Luck.
* * *
Find the article useful ? Do share, like and comment.
2 Comments
Um, it seems to me that one needs both a framework and a CMS. Framework to provide a basic platform, CMS to provide site management on a day-to-day basis. They are not mutually exclusive
2017-12-30 10:00:07I got your point. The point I wanted to convey is CMS like WordPress can have functionality (with help of plugins) but it is not optimized for all types of application. Now suppose you want to develop a customer support portal - you can use some wordpress plugins but can also develop it using frameworks like Laravel etc. When using WordPress it will not be a 100% optimized solution but can be development cost-effective but developing it from scratch using framework provides a good scalable solution.
2018-01-02 16:37:09