Today I am going to tell you about what are CMS and MVC frameworks. How they do differ and why one we should choose?
If you don’t know what are frameworks then visit Introduction to web application frameworks
What is a CMS?
CMS stands for content management system, that reduces the role of the developer and it is more of tool knowledge and less of code that provides default templates and themes for building the websites. CMS is a base premade system that you can extend with modules or plugins. This provides a number of web designs and plugins for mostly all general problems. The developer has to only customize the tools ( web templates and plugins) to build a website. Although the developers can write their own plugins and templates but in most of the cases they need not this work. You really don’t need to know any code to use a CMS. Examples for CMS are wordpress, joomla, umbraco etc.
What is MVC framework?
Whereas MVC stands for model view controller, it is a pattern that decouples the view(UI) and Controller logic. It is a software architecture, that you can use to develop application. It helps us to make the best use of the HTML, CSS, javascript and AJAX features to give a highly dynamic web applications. MVC is widely used in ASP .NET, PHP, Python and Java. To use any MVC you must have a good knowledge of that language as well as the libraries provided by that MVC. You have to write all plugins and templates yourself.
Advantages of CMS
- Ready-to-use web templates, i.e., not need to write code. Just customize and present website without any hard afford.
- Ready-to-use plugins. You have to only search for plugin for any functionality. For example wordpress has more than 17,000 plugins.
- CMS is good for having many websites with typical functionality.
- With CMS, there’s no need to reinvent commonly used stuff such as breadcrumbs, easy media files, menu management, etc.
Disadvantages of CMS
- CMS restricts what you can do. CMS are for some type of general purpose like wordpress is for blogging. So it is not possible/easy ( if possible) to build a chatting and video calling website using wordpress.
- Slow customizing for unique requirements ( if you have not build your own CMS). CMS is build for all users so customizing it for some specific purpose ( which is not usually common) is hard.
- Changing the code can be hard and, worse, risky because you might lose compatibility with new versions of the CMS or other plugins.
- With CMS it’s impossible to use good programming practices such as automated tests and refactoring.
- With CMS, if a performance problem is in the core, you can’t fix it. Although this is not a common problem.
Advantages of MVC
- Full control. You have no restriction as you can do any thing.
- Good inbuilt API for all types applications.
- MVC is good for very custom websites with unique functionalities.
- maintenance is easy
- Easy to change code as the code does not depends upon the third party
Disadvantages of MVC
- Require high knowledge of programming languages as you have to write code
- Require knowledge of inbuilt APIs
- Not required for small websites ( like blogging websites)
- Take much time to build a website
More comarision
- CMS is expensive to set up and maintain whereas MVC is expensive to set up but not in the long run.
- CMS is fast than MVC
- MVC is best for dynamic websites in long run rather than CMS.