When looking at CAB it is obvious how strongly they support the
Model View Controller (MVC) and
Model View Presenter (MVP) design patterns. The Model View Presenter first appeared in IBM, but was further described by Andy Bower and Bair McGlashan. In their paper "
Twisting The Triad" they explain why they choose to use MVP instead of MVC and it's well worth the effort of reading it through.
Now Martin Fowler have retired his description of MVP and separated it into two patterns;
Supervising Controller and
Passive View. One issue that I have had with MVP is that the Presenter is supposed to expose the data that the View needs which means that it should expose properties from the Model (your own business objects or DataSets). For me this means a lot of extra work and I would rather use the strong Data Binding support that Web and Windows Forms supports and do it directly against the Model. This is now recognized by Fowler and he suggests the Supervising Controller as the pattern when using Data Binding.
I think this is great, but spontaneously I would have liked him to call it Supervising Presenter instead of Controller. He states though that it is TBD (To Be Defined) if it should be called Controller or Presenter. The future will show which he chooses.