Answered by:
MVC vs MVP vs MVVC

Question
-
Hello
what the difference b/w
MVC vs MVP vs MVVC
C# windows form example would be excellent
It's MeMonday, May 17, 2010 5:00 AM
Answers
-
MVVM is a Microsoft-specific alternative of the Presentation Model pattern thoroughly discussed in this MSDN article, and is primarly meant to be used in Silverlight and WPF applications.
MVC is one of the oldest patterns for solving user interface testability, and has been adopted by Microsoft in their ASP.NET MVC framework.
MVP is Model-View-Presenter and is discussed in detail in this MSDN article. It was heavily used in the Web Client Software Factory and I have personally used it in many ASP.NET projects. However, because of the way the code-behind files must implement an interface provided by the presenter, and the amount of pain this introduces when your creating unit tests for your presenter logic, I've switched to Presentation Model.
In essence, you choice is rather simple. If you're doing WPF or Silverlight, use MVVM. If you're doing ASP.NET Web Forms or Compact Framework, use Presentation Model. If you want excellent testability and rigoruous control on the HTML output or you want to be one of those boys, use ASP.NET MVC.
Dennis Doomen
Principal Consultant at Aviva Solutions
Blog, Twitter, Fluent Assertions- Proposed as answer by DennisDoomen Monday, May 17, 2010 5:27 AM
- Marked as answer by Liliane Teng Saturday, May 22, 2010 4:51 PM
Monday, May 17, 2010 5:27 AM -
Hello It_s Meee,
Thanks for your post.
Model-View-Controller (MVC) is an architectural pattern that separates application's data model and user interface views into separate components. Although it's an ASP.NET pattern, it could be modified slightly to be used on Winforms. Here is an example.
http://www.ii.uni.wroc.pl/~wzychla/mvc.html (Model-View-Controller for a Windows.Forms Application)
If you want to choose design patterns for windows form application, the following link could be helpful. Hope it can give you a hint.
http://stackoverflow.com/questions/404624/what-is-the-most-common-design-patterns-for-any-windows-forms-applicationIn addition, for more information about MVC vs. MVP vs. MVVM, check out
http://www.codeproject.com/KB/architecture/MVC_MVP_MVVM_design.aspx
(Model View Controller, Model View Presenter, and Model View ViewModel Design Patterns)
http://www.codeproject.com/KB/aspnet/ArchitectureComparison.aspx
(Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC)Best regards,
Liliane
Please mark the replies as answers if they help and unmark them if they provide no help. Thanks- Marked as answer by Liliane Teng Saturday, May 22, 2010 4:51 PM
Tuesday, May 18, 2010 7:04 AM
All replies
-
This link has a good discussion of this topic:
http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/
Hopt his helps.
www.insteptech.com ; msmvps.com/blogs/deborahk
We are volunteers and ask only that if we are able to help you, that you mark our reply as your answer. THANKS!Monday, May 17, 2010 5:20 AM -
MVVM is a Microsoft-specific alternative of the Presentation Model pattern thoroughly discussed in this MSDN article, and is primarly meant to be used in Silverlight and WPF applications.
MVC is one of the oldest patterns for solving user interface testability, and has been adopted by Microsoft in their ASP.NET MVC framework.
MVP is Model-View-Presenter and is discussed in detail in this MSDN article. It was heavily used in the Web Client Software Factory and I have personally used it in many ASP.NET projects. However, because of the way the code-behind files must implement an interface provided by the presenter, and the amount of pain this introduces when your creating unit tests for your presenter logic, I've switched to Presentation Model.
In essence, you choice is rather simple. If you're doing WPF or Silverlight, use MVVM. If you're doing ASP.NET Web Forms or Compact Framework, use Presentation Model. If you want excellent testability and rigoruous control on the HTML output or you want to be one of those boys, use ASP.NET MVC.
Dennis Doomen
Principal Consultant at Aviva Solutions
Blog, Twitter, Fluent Assertions- Proposed as answer by DennisDoomen Monday, May 17, 2010 5:27 AM
- Marked as answer by Liliane Teng Saturday, May 22, 2010 4:51 PM
Monday, May 17, 2010 5:27 AM -
thanks for reply, I am working on windows application not WPF is MVC is the right model or some thing else
It's MeMonday, May 17, 2010 8:26 AM -
No, MVC is for ASP.NET only. I would use Presentation Model for Windows Forms applications.
Dennis Doomen
Principal Consultant at Aviva Solutions
Blog, Twitter, Fluent AssertionsMonday, May 17, 2010 8:33 AM -
Hello It_s Meee,
Thanks for your post.
Model-View-Controller (MVC) is an architectural pattern that separates application's data model and user interface views into separate components. Although it's an ASP.NET pattern, it could be modified slightly to be used on Winforms. Here is an example.
http://www.ii.uni.wroc.pl/~wzychla/mvc.html (Model-View-Controller for a Windows.Forms Application)
If you want to choose design patterns for windows form application, the following link could be helpful. Hope it can give you a hint.
http://stackoverflow.com/questions/404624/what-is-the-most-common-design-patterns-for-any-windows-forms-applicationIn addition, for more information about MVC vs. MVP vs. MVVM, check out
http://www.codeproject.com/KB/architecture/MVC_MVP_MVVM_design.aspx
(Model View Controller, Model View Presenter, and Model View ViewModel Design Patterns)
http://www.codeproject.com/KB/aspnet/ArchitectureComparison.aspx
(Comparison of Architecture presentation patterns MVP(SC),MVP(PV),PM,MVVM and MVC)Best regards,
Liliane
Please mark the replies as answers if they help and unmark them if they provide no help. Thanks- Marked as answer by Liliane Teng Saturday, May 22, 2010 4:51 PM
Tuesday, May 18, 2010 7:04 AM