MVP
MVP stands for Model - View- Presenter. This came to a picture in early 2007 where Microsoft introduced Smart Client windows applications.
A presenter is acting as a supervisory role in MVP which binding View events and business logic from models.
View event binding will be implemented in the Presenter from a view interface.
The view is the initiator for user inputs and then delegates the events to the Presenter and the presenter handles event bindings and gets data from models.
Pros:
The view is having only UI not any logics
High level of testability
Cons:
Bit complex and more work when implementing event bindings
MVC
MVC stands for Model-View-Controller. Controller is responsible for creating models and rendering views with binding models.
Controller is the initiator and it decides which view to render.
Pros:
Emphasis on Single Responsibility Principle
High level of testability
Cons:
Sometimes too much workload for Controllers, if try to render multiple views in same controller.