What is a web design framework?

A web design framework is a basic structure consisting of standardized codes which are used as a foundation to build activities performed in web development. A web design framework is usually based on the Model-View-Controller (MVC) architecture.

What do the Model, View and Controller represent in an MVC?

The Model is a representation of the knowledge and data, the View is a visual display of the Model while the Controller is a link that connects the Model and the View. MVC is highly flexible and customizable despite its complexity. The MVC architecture is illustrated in the diagram below.

How many types of frameworks are there?

There are two types of frameworks – front-end frameworks and back-end frameworks which are also known as presentation layer and application layer respectively.
Some examples of back-end frameworks are Symfony, Django and Ruby on Rails which rely on languages like PHP, Python, Ruby and Java.
CSS frameworks, another name for front-end frameworks, can be further classified into Simple frameworks and Completed frameworks, according to their complexity and flexibility. These types of frameworks include Bootstrap, Foundation 3, Grids Systems which make use of languages such as HTML, CSS and Javascript. Since CSS frameworks are flexible and customizable, they target the View part of MVC architecture and are also applicable to Content Management System (CMS).

Then, what is a CMS?

Content managing is to organise information so that the information can be easily stored, edited and displayed. Thus, CMS is a system which allows the user to manage content on dashboards and publish them by pulling out information from databases. WordPress, Blogger, Drupal and Tumblr are examples of such system. CMS is highly scalable and is easy for the user to set up. On the other hand, since there are databases involved, the loading time may be slow. CMS also restricts the user to using specific languages due to low flexibility.

So is using a framework advantageous to the user?

Since codes in a framework are usually standardized and can be reused, it actually fastens up the web development process as the user does not need to duplicate codes. The user is also not required to have sufficient knowledge to use a framework, which in turn reduces the time process. However, since a framework is restrictive, it limits and defers the user from proper development practices. The outputs of different users can look similar as well.
Thus, it may depend on the user.