Separating content from how it is presented has been a mantra in the web world for well over a decade, and with the myriad of media now available for consuming content, the advantages of this are even more apparent. Web application developers long-ago adopted the Model-View-Controller (MVC) methodology from the software engineering world. Today nearly every website is data driven and incorporates user-defined interactions, and the MVC model is more important than ever in web development.
The MVC methodology is a form of layered architecture.
By using an MVC approach to web development, technical teams can allocate work according to strengths, allowing for a concurrent development approach. Your front-end developer can work on the look and feel in the View layer (HTML, CSS and JavaScript interactions) at the same time that a back-end developer is defining the Controller methodology. And with the data model separated from it all, the operations team is free to move from MySQL to SQLite or even a NoSQL data store. The View and Controller layers need not know or care how or where the data is stored, just that it is available and the Model will deliver the same information regardless. There will be interfaces defined between the Model, Controller and View in order to keep everyone honest, but changes can be made within a layer without affecting the other components.
MVC can be achieved through the use of a framework library (available for every web development language) or can be a homegrown implementation. The trick is to have strict separation of data, logic and view. Frameworks help keep you honest and abstract away some of the challenges allowing developers to focus on the business logic algorithms and display logic.
MVC and why it works

- The Model is your data, how you manipulate it and how your data sets relate to each other and to your business logic;
- The View is exactly that – how the data is presented to (or viewed by) the user;
- The Controller is where the magic happens (and my favorite part)! The Controller is where your business logic resides – this is where decisions are made about how to act on the data. The Controller is the glue between your data and the view, as the controller not only manipulates the data, but also determines the appropriate view to return to the user.
MVC and Allocation
