Die Model-View-Controller Architektur geht auf die Smalltalk-Umgebung zurück.
Links zu MVC:
http://cristobal.baray.com/indiana/projects/mvc.html
http://msdn2.microsoft.com/en-us/library/ms978748.aspx
http://de.wikipedia.org/wiki/Model_View_Controller
Das Model-View-Controller-Konzept wird in vielen Bereichen moderner Softwareentwicklung eingesetzt und bedeutet die strikte Aufgabenverteilung bei einer Anwendung. So wird als Model die Datenquelle bezeichnet, die Daten unabhängig vom Erscheinungsbild liefert (also beispielsweise aus einer relationalen Datenbank). Die View zeigt diese Daten dann in passender Art und Weise an - bestimmt durch den »Look«, wie diese View die Daten anzeigt wird nicht vom Model beeinflusst.
Zwei Diagramme verdeutlichen dieses Konzept:


Der Controller kümmert sich um die Interaktion mit dem Benutzer (das Verhalten der Komponente). Wird beispielsweise in der angezeigten Tabelle ein Wert geändert, so teilt der Controller dies dem Model mit, welches wiederum die View darüber informiert - der neue Wert wird angezeigt. Der Controller ist also die Logik der Anwendung.
Der Vorteil dieser Aufgabenverteilung ist zum einen die Möglichkeit der Aufteilung in logische, unabhängige Klassen, wie auch die Möglichkeit, jeden der drei Teile jederzeit auszutauschen. Hierdurch ist bei Swing der Austausch des Look-and-Feels zur Laufzeit möglich.
Zusätzlich können Spezialisten für die einzelnen Teilaufgaben eingesetzt werden - der Designer entwickelt ein eigenes Look-and-Feel, während sich der Datenbankprogrammierer um das Model kümmert.
Ein Beispiel von Microsoft für MVC und ASP.NET findet man hier:
http://msdn2.microsoft.com/en-us/library/ms998540.aspx
Ein Beispiel für MVC mit ASP hier:
http://www.15seconds.com/issue/060817.htm