I am of the view that applications are so different from each other and our understanding of how applications should be written is still very limited. Past Windows Forms applications I have worked on have been so different from each other. Some of the design differences I have seen are (including most combinations):
- Directly talk to the database (2 tier)
- Use a backend that has been written for the given application (3 tier)
- Use a set of web services that were written for use by many applications and can’t be changed for your application. (Service-oriented architecture)
- Updates being done by CRUD operations
- Updates being done with the command pattern (sending commands to backend server)
- Lots of usages of data binding / no usages of data binding
- Most data being “table like” (e.g. invoices) that work well in standard grid controls / need custom controls for most of the UI data.
- One developer / teams of 10 or 20 developers (just on the UI)
- Lots of unit test using mocks etc / no unit tests
Therefore I don’t think it’s possible to create one implementation of MVC (or MVP) that always fits well.
The best posts I have seen really explaining MVC and why an MVC system is built the way it is, is the "Build Your Own CAB" series by Jeremy D Miller. After working though it you should be able to understand your options a lot better.
Microsoft's Smart Client Guidance (CAB / Microsoft C
answered 2009-03-25T15:53:43.137