At this moment I'm busy with the second part of my DAAB description, to implement the Oracle driver. But now a short overview about the Model View Controller.
What's the problem ?
How do you modularize the user interface of a Web application so that you can easily modify the individual parts?
Other items :
- User Interface changes more than business logic
- Display info in several ways
- User Interface consists of 2 parts : Presentation and update
- User Interface depends on the device, than the business logic
- Developing the User Interface or the Business Logic takes 2 different skills
The solution :
The Model View Controller (MVC) pattern. This pattern separates the presentation and the actions based on user inputs in 3 separate classes :
- Model : Managing of data, responding to information requests, responds to instructions
- View : Manages the information displaying
- Controller : interprets the mouse and keyboard inputs, and informed the model/view

Good to know is that both the view and the controller depends on the model. But not visa versa.
There are several variations of the MVC :
- Passive model
- Active model
The Passive Model :
This model is employed when one controller manipulates the model exclusively. The controller modifies the model and then informs the view that the model has been changed. Now the view knows that he must refresh himself.

The Active Model :
This model is used when the model changes states without the controller's involvement.

Microsoft did a good way with their example "Implementing Model-View-Controller in ASP.NET". This pattern is the fundation for further, more specialized patterns like Page Controller and Front Controller.
The example starts with everything in one page and finally gives the good solution on how to build the MVC in ASP.Net. But... Yes your read it good. I have my thoughts with this example.
When reading about the MVC, I came to the conclusion that the solution of Microsoft isn't really a translation of what they said in the theory about MVC. SO when searching on the internet, I came across the blog of Mads Nissen, who did in 2003 a nice translation from the theoretical part to the practical part. Read this article and go to the GotDotNet community to download the example.
More info can be found :