Yes, what is that?! Others have described this better than
me but I repeat it in my words.
Model View Controller (MVC) is a methodology to build an application
based on the idea of dividing the implementation into three roles: Model, View
and Controller.
Let us take a second look at the above sentence. From the
above sentence we believe that MVC is a methodology not a technology, so it has
been used before Microsoft adapts it to ASP.NET. I persisted on this because
saw some guys who thought it was a technology that is designed for ASP.NET
specifically.
I also need to introduce the three roles in a nutshell:
·
Model: This is the role to maintain the state. Usually these are
classes that represent data in a database.
·
View: The second role displays the data in the user interface to
end users. This may be a set of user interface elements like TextBoxes, editors
and buttons.
·
Controller: The last role is responsible to interact with user
inputs and handling it. In fact, controller is where you implement the actual
logic to handle what the user has asked for.
The MVC has become a very good methodology to design
applications that rely on data interactions. The most important benefit of MVC
is the ability to unit test the application easily because you can unit test an
MVC application via its controllers and apply a TDD workflow
(Red-Green-Refactor) easily.
Figure 1 shows the structure of MVC pattern where the model
is independent from the controller and view so this enables the testability of the
model independently from what controller and view are. On the other hand, there
is a separation between model, view and controller that lets developers test
their MVC applications easily. In fact, separation of view as the user interface
element and controller and model is important because it simplifies the testing
process.
Figure 1: MVC structure

I do not discuss more about the MVC and just refer you to Scott
Guthrie's post about it and its description on Wikipedia that
would be sufficient to get you started.