In this blog post we discuss the use of a Model-View-Controller (MVC) framework in the context of custom web application development. What exactly is a Model-View-Controller (MVC)? Wikipedia gives the following insight and definition:
MVC (Model-View-Controller) is an architectural design pattern that encourages improved application organization through a separation of concerns. It enforces the isolation of business data (Models) from user interfaces (Views), with a third component (Controllers) (traditionally) managing logic, user-input and coordinating both the models and views. The pattern was originally designed by Trygve Reenskaug during his time working on Smalltalk-80 (1979) where it was initially called Model-View-Controller-Editor. MVC went on to be described in depth in “Design Patterns: Elements of Reusable Object-Oriented Software” (The “GoF” or “Gang of Four” book) in 1994, which played a role in popularizing its use.
Although a Model-View-Controller (MVC) design pattern was originally formulated in the late 1970’s, it has more recently gained increased relevancy as a software modeling development system due to recent efficiency requirements when building web applications. Separating the View (presentation layer) from the applications inner workings (Control and Model) allows independent development of each element. The benefits of the separation are several:
- Web application development in the MVC framework allows for the design to be maintained and independently updated from the codebase. It is not uncommon that over time the design sensibilities may seem outdated, new design considerations become available, or new devices with different UI requirements become available. Separating the design and code make it easier for the developer to update the designs without affecting the established code.
- Web application development in the MVC framework allows for the Web applications features to grow over time. It may be the case with a web application that with new users, new features need to be added that weren’t originally anticipated. When new web application systems are developed they can be modeled according to already established graphical user interfaces.
- Web application development in the MVC framework allows for new representations or presentations of the same data, such as showing a chart of data as a pie chart or as a bar chart.
- Web application development in the MVC framework allows for new formatting of text or image content, such as a styling of a user interactive slideshow.
- Web application development in the MVC framework allows for the division of labor in the development process: one developer can work on the core logic and data structure (Controller / Model) while another can simultaneously work on its presentation to the user (graphical user interface or View).
- Web application development in the MVC framework allows for a web application’s functionality to be repurposed based on adjustments to a configuration file, independent of its GUI elements.
- Web application development in the MVC framework allows for scalability by centralizing re-usable building blocks of code. When new features are added to the web application, those new features can re-use the existing web application’s foundation code elements.
Web applications are sometimes a one-off for a specific purpose, but often times their functionality requirements grow over time as more users begin using the system. It is not uncommon to build out a system with a certain feature set and then soon after launch find that some features are more appreciated than other features, requiring further enhancements.
Interaria’s custom Web Application Development utilizing the Model-View-Controller (MVC) framework takes into account that the web applications’ user interface designs and graphical components will likely need to be updated over time and that a continued development of the web applications functionality will likely expand over time. Web applications developed in the the Model-View-Controller (MVC) framework allow for development flexibility, scalability and growth of visual design, user interfaces designs and the code base.
Contact Interaria at 214-909-3900 to discuss your company’s custom web application development needs.