In addition to Peter Duniho's comments, which in my opinion describe
MVC and could possibly serve to illustrate the differences between MVP
and MVC, MVP forces the discipline to completely separate your UI
implementation (the View) even from the UI logic that drives it
(Presenter). In this mode, the Presenter is "subscribed" to all the
events and controls the View. Paired with the inversion of control and
dependency injection it provides for pretty good separation of
concerns. This may be helpful if you ever need to put a different
"face" on your app, for example.
The folks at MS P&P that did Web Client Software Factory found another
benefit of the above combination - they are able to make their views
more testable by following that pattern (being able to unit-test
without the entire session context)
I found the following reading to be helpful, while I was going up the
learning curve of Microsoft's Smart Client Software Factory (SCSF):
http://ctrl-shift-b.com/2007/08/interactive-application-architecture.html
http://richnewman.wordpress.com/200...asic-pattern-introduction-to-cabscsf-part-24/
You can check how SCSF implements it, but it may give you a headache
due to the many other concepts intermixed in the factory.
Web Client Software Factory is somewhat simpler than the SCSF. I know
that you asked for WinForms, but if you do the relevant Hands-On-Labs
that come with WCSF you may be able to answer some of your own
questions about the MVP pattern.