Home About us Products Services Contact
NavigateNavigate rule

ASP.NET MVC

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 of.

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.