What is CMS?
CMS is Content Management System. It provides complete basic functionality that can be used as base for any website.e.g. WordPress,Joomla,Drupal and many others. Once we install CMS their basic functionality is ready to use we can change its core logic and add new features in it by extending its functionality e.g. developing plug-ins in WordPress,extension and modules in Joomla etc.
This type of functionality is good for small and medium websites or web applications that customer’s needs are close to the features that CMS provides. CMS are easy to use and flexible to extend.
What is framework?
Framework is a group of classes and methods which are used for easier, faster and better quality in developing applications like web sites and web applications.
Frameworks are used for custom applications where customer needs cannot be accomplished by CMS.
Also Frameworks are used for very huge applications for better performance and quality.
Most Common PHP frameworks are CakePhp, CodeIgniter, Zend etc.
What to choose CMS or Framework?
- CMS will make the site running with its basic features in one click of installation process so it will have advantage of speedy development and by time you can easily customize its functionality. But on the other site a CMS will rarely be as fast as a custom made application.
- In Case of framework up to developer to define the structure and the logic of the application which at the same time it is expensive and modification in basic structure will be time consuming process.
- CMS will not be always good for large projects unless it will fit to requirement in almost all features which CMS provides and you can easily do what you want using framework at any time.
- In Case of CMS you will get either free plugins or themes from the market to use in your system that is not possible with Framework easily.
- So Choosing from CMS or Framework will depend on following factors.
- Project Requirement
- Project Size
- Project delivery time
- Project Features
- Project Budget
- Long term performance concern
- Further Maintenance
- Implementation with third party/custom APIs