Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between a CMS and a Framework? and how to choose between them for certain requirements?

Tags:

I am currently working with Zend Framework and I am extremely happy with it. What I want to know is at what kind of requirements it is better to use CMS's like Joomla or Drupal.

Considering my current project it is a portal application. It is completely made from scratch in Zend. Then some fellow comes and comment that it rather implemented in drupal you could get plugins for the stuff you built by hard efforts.

So I need a guideline for how to choose between CMS and A Framework at the kickoff phase?

like image 325
Rupesh Patel Avatar asked Jul 24 '12 10:07

Rupesh Patel


People also ask

What is the difference between CMS and framework?

The key difference between CMS and framework is that a CMS is an application that creates and manages digital content while a framework is a software that contains a generic functionality that can be modified by additional user-written code depending on the application.

Should I use CMS or framework?

If it is a minor or basic project, such as an informative website, it is recommended to use the CMS as it is easy to manage but if it is a more complex project, based on software development, it is much more advisable to develop based on a framework.

Is WordPress a framework or CMS?

In a nutshell, WordPress is a type of program called a Content Management System (CMS). This kind of platform is configured to help you create content and design your site, all within a visual and user-friendly interface. You can also extend the functionality of the core feature set in most CMS platforms.


2 Answers

The question in your case is whether to use a ready made CMS or to create your own system using a framework. The right answer depends on the following:

  • budget
  • number of users you will have (long term performance concerns)
  • further maintenance
  • total number of details (bells and whistles) you want to provide on the site
  • implementation with third party/custom APIs
  • special/custom features that require high level of freedom (example: StackOverflow reward points and badgets)

As this is a question most of us face pretty often, here are cons and pros of a ready made CMS vs a framework:

Ready made CMS

Pros

  • faster start and development time if your project generally fits in what the CMS provides
  • available modules and themes
  • backed up by community, meaning that new features, bugfixes, support, tutorials etc. will be provided to you free of charge
  • unified set of standards - it's easier to continue working on an existing CMS site than to take someone else's custom application (this is relative, but the point is that in a site that uses an existing CMS most of the things/setup will be familiar to you while in a custom app the previous developer had more freedom)
  • security is something you do not need to worry that much as in a custom app

Cons

  • if your requirements are very specific, you will need to override the default workflow of the system; in some cases this can be tricky and will make you spend more time than to write your own
  • redundant code in modules/plugins
  • performance - a ready made CMS will rarely be as fast as a custom made application
  • not suitable for every large website (unless you fit in almost everything that the CMS provides)
  • steep learning curve in some cases (Typo3, Drupal)

Custom application

Pros

  • it's up to you to define the structure and the logic of the application
  • app design is made especially for the project you are working on - so there is no redundant code
  • freedom to do anything you want

Cons

  • expensive - in most cases you/your client will need much more money for a custom app
  • further maintenance will be harder
  • changes and modifications of the structure can be very time consuming
  • if you aren't using a CMF you will have to reinvent the wheel in some aspects

Bottom line

Spend a couple of days and learn something about the CMSs out there, such as:

  • Drupal - my first recommendation; good for medium to big websites; good community; medium/steep learning curve
  • WordPress - my second recommendation; good for small to medium sites
  • Typo3 - enterprise level system; pretty complex, combined with a framework which can be used standalone in projects
  • Joomla - I personally don't like it and do not recommend it because of amateur plugins, but it is popular
  • SilverStripe
  • MODX
  • Concrete5

I think that any bigger and serious project, which will have at least 1-2 programmers to take care of the system at all times, should be custom. Exceptions are only if it fits exactly in what an existing CMS offers already.

Hope this helps :)

like image 79
Aram Boyajyan Avatar answered Sep 20 '22 11:09

Aram Boyajyan


Take a look at Difference between a CMS and a web-development-framework on StackExchange.com.

A CMS (Content Magagement System) is used to manage content on a website. It usually provides tools to make this task as easy as possible.

Examples of CMSes: Drupal, Joomla, DotNetNuke etc.

A framework is like a set of libraries / classes to build a web application. Many frameworks provide libraries for database access, templating engines etc. This way, you don't have to reinvent the wheel.

A CMS is often build upon a Framework.

Examples of frameworks: CodeIgniter, CakePHP, Kohana...

like image 41
ndequeker Avatar answered Sep 18 '22 11:09

ndequeker