locked
MVC vs MVP vs MVVC RRS feed

  • Question

  • Hello

           what the difference b/w 

    MVC  vs MVP vs MVVC 

    C# windows form example would be excellent


    It's Me
    Monday, 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-application

    In 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