MVC, reliable development of web applications

3 min reading
Developers / 27 January 2014
MVC, reliable development of web applications


MVC stands for Model, View, Controller and is a more than reliable alternative when it comes to creating and implementing systems in which user interfaces are included. Use of this technique provides advantages such as increased reliability and robustness in the software, which increases its life cycle; code reuse; separation of concepts and greater ease of maintenance.

This trend is based on the reuse of code and its separation into three different layers: one for data, one for the interface and a third logical layer. These three layers are called Models, Views and Controllers.

Models. These are the business objectives. This layer includes aspects related to the data. The options for removal and insertion of data, access to information or updating figures, as well as their selection are found here. The core functionality of the application developed is found in this layer.

Views. This is the interface that interacts with the user or other systems. Data are organized in this layer and the way in which they are deployed is selected. The code of the application that will subsequently display the user interface is included in this part. Views is directly related to the Model layer, since it requests the data that will be shown on the display to this layer. In summary, Views is the visual presentation of the Models layer.

Controllers. This is the layer that manages the entire workflow of the application. It organizes the relationship between the above two layers and establishes the parameters within which a request for data is made and when to deploy them. The actions are implemented from this section that are going to be performed through the application, such as editing, searching or interacting. Its primary mission is to serve as a link between the Views and Models layers. This layer responds to requests from the client of the application, running the appropriate action and creating the models needed.

For the correct operation of an application based on MVC, the three layers must communicate properly with each other, responding logically to any action by the user.

MVC is becoming one of the most prominent trends in the world of web development. This proposal, presented back in the '70s, has become current again with the emergence of a large number of frameworks (underlying structure for the organization and development of software) using the MVC pattern as the model when building web applications. These are some of the highlights.

Ruby On Rails. This is an experienced application (development started in 2003) that offers an open source website framework based on Ruby that allows applications to be created for the real world. All layers (using MVC architecture to organize application programming) are built to work seamlessly. Through this framework, everything ranging from templates to control flow to business logic is written in Ruby. Websites as well known as Twitter, GitHub, Hulu and Slideshare use this framework. You can see its main features here.

CakePHP. This is a rapid development framework of highly-flexible open source applications based on MVC and inspired by Ruby On Rails. This structure uses commonly-known design patterns like Active Record, Association Data Mapping, Front Controler and MVC. Its main objective is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications without losing any flexibility. Sites like MapMe, Copify, Piano Marvel and Flipcomp use CakePHP. You can see its main features here.

Catalyst. This is an elegant open source structure for web applications. Its simplicity and flexibility are among its advantages. Through it, developers can build applications that run on the web or by using protocols used for it. Catalyst has been designed to make it easier to manage a wide variety of tasks required for an application to work on the web, either by doing them itself or allowing Perl modules to be connected that can do them. This framework is inspired by other similar ones such as Ruby on Rails, Maypole and Spring. Catalyst follows the design pattern based on MVC, allowing separate issues such as the content, presentation and control of the flow in separate modules. This separation allows the developer to modify the code that handles a particular matter without affecting the code that handles the others. Websites like BBC iPlayer, Edit Grid and Manchester Evening News use this framework. You can take a look at its features here.

It may interest you