What is ASP.NET MVC?
ASP.NET is the leading
web application framework from Microsoft. It is part of the wider
.NET framework allowing programmers to develop websites in any .NET language.
MVC, which stands for Model-View-Controller, is a long-established method of creating web applications. It was
originally developed in 1979 and has been gaining in popularity ever since. In that time MVC has earned an excellent
reputation among developers for creating reliable software that is easily modified to meet your changing requirements.
In basic terms MVC is a means of separating application content (the Model) from the user interface (the View)
and business logic functionality (the Controller). There are good practical
reasons for doing this, which are expanded upon below.
Why use MVC?
You are in pole position at Silverstone, you have spent millions designing and developing a competitive
car only to find that on the day of the race, your rivals have trumped you by sticking the widget from a
can of beer in their fuel line and gaining a 50% increase in power from the bubbles! You could make the same
modification yourself of course, but the race is about to start and now is not the time to be disassembling
your engine. If only you had used a Modular Vehicle Construction technique, the pipe could have been popped
off and swapped for a widgetted one in no time...
OK, it’s not quite as straightforward as that. In fact, in this analogy the car represents the 'Model', the
race track is the 'View' and the driver is the 'Controller' (we are the pit crew and the user is the person on
the microphone giving team instructions).
We all know the benefits of modular design and interchangeable components for producing and maintaining items
such as cars or washing machines. For the same reasons, modular code is an established norm among software engineers.
MVC takes this concept a step further by adding an additional level of structure based on function and responsibility (i.e.
client, server, data).
The core benefit of the MVC structure is that the separation of the three ‘tiers’ within the software is done
in a way that strongly defines how they interact with each other and minimises how much they depend upon
each other in order to function correctly.
Let’s consider the situation imagined above but where the different parts of the software are not defined
in this way. Although your car and driver are still in the same race, the car, driver and race track
are essentially integrated parts of the same thing. A change to the engine is also a change to the
driver and everything else in the race environment. It adds a level of complexity to a simple maintenance problem
that sounds absurd when placed in this context.
Even small to average-sized software applications typically consist of thousands of lines of code, often
inter-related in unexpected ways so that changes in one area can affect parts that you never even thought
The effects of not giving sufficient thought to structured design and code layout are felt all too
often in the cost of modifying or extending functionality.
So why doesn’t everyone use it?
Some software companies prefer to stick to old familiar ways of doing things - we don't share that view. Here at
Open Projects we are always looking for ways to improve the service that we can offer to our customers.
Having said that MVC is a long-established technology we should clarify the point. MVC has been available
on some web development platforms, notably Java, since the nineties. The ASP.NET MVC v1.0 framework was only
released by Microsoft in March 2009.
Open Projects were among those in the professional software development community who had been eagerly
anticipating the release of an MVC platform for ASP for some time. Adding MVC support to the existing advantages of
developing in .NET is a powerful combination.
Without including our previous experience of older MVC technologies, by the time the ASP.NET MVC v1.0 framework
was finally released we had already done five months of intensive in-house development work using the beta version.
At the moment the benefits of MVC are largely known only to IT enthusiasts and professional web developers.
We predict that as MVC's profile continues to increase and the real benefits to business are recognised, MVC
will become a major selling point in new web applications.
In the meantime we are proud to consider ourselves amongst the vanguard of developers taking advantage of this
exciting new architecture.