MVP. It's MVC but broken.
Oh no but wait, developing an application IS completely different than following good practise such as "It's just a view".
Update
I reference "It's just a view" which is from the book Pragmatic Programmer. My main issue is that almost every single MVP implementation has the view holding onto the presenter and telling the presenter to do things. This is conceptually backwards. The UI should not have a dependancy on the logic. It is "just a view". The logic is the primary reason for the application, how that logic is displayed is a secondary concern. I could use one winform, or I could use many. Hell, I could pipe the whole thing out into ASCII text, or create the "view" by sending charges down a wire attached to an artist who renders the view via the medium of interperative dance.
Practically speaking this premise does have some viable uses. Some of the controllers I've written in the past have MANY views that are exernally exposed and can be pushed into the UI as the application sees fit. Consider a live feed of data. I could present this as stats, as lines graphs, as pie charts. Perhaps all at the same time! Then the view holding onto the controller looks kinda silly, the parent is the controller and the children are the views.
A traditional (Form holds presenter) MVP implementation has other consequences. One being that your UI now has a dependancy on code that performs the logic, this means it will also require references to everything that logic needs (services etc).
The way to fix this is to pass in an interface (again, most MVP implementation I see have the form creating the presenter, but hey). Then it becomes a workable model, although i've never been a fan of passing in args to a form constructor.
At the end of day it feels like people are twisting things around attempting to justify a model that is broken. I am of the personal belief that the MVP pattern purely exists as an attempt to rationalise how Visual Studio Windows Forms Applications work. They start with a "Form First" mentality.
"Oh hai, here is your form, now go and draggy drop your controls and stuff logic into the UI"
Anyone with experience with any apps that are beyond a util appreciate that this way of working does not scale. I see MVP as a way of making this scale but this just feels like an architectural band aid around the broken "form first" development model the IDE promotes.
I argue that MVC is just MVC, MVP is a bastardisation of the pattern. Infact the whole definition of MVC is kinda backwards. The important part of it is separation of concerns. The UI, the logic, the data and/or services you're consuming. Keep these seperate. You don't implement MVC to do this, you do this and by doing so you end up with a form of MVC. MVP doesn't fit into this because you don't end up with MVP if you start by thinking of Separation of Concerns you end up with MVP if you're stuck in "Form First" land and you feel you should be doing things a bit more MVCish.
That's my take on it anyway....