Apr 16, 2009 at 6:00 AM

Here is a preliminary list of motivations behind using MVVM (in no particular order), I'm sure I missed something (it IS 4:40 AM) so feel free to chime in.

  • Separation of concerns: the viewmodel separates the logic driving the UI from the presentation itself. This allows the logic to change with minimal impact on the presentation.
  • Testability: the viewmodel can be verified using standard unit testing, instead of requiring an automation framework necessary with a standard code-behind.
  • Enhancing the Developer-Designer Workflow ("Blendability"): related to the Separation of Concerns, the viewmodel allows the developer to expose intent to the designer giving them free reign to interpret how best to visualize that intent.
Apr 16, 2009 at 1:06 PM
Nice list.  I'm still not convinced it helps us too much at this level (choosing a reference application and providing the business domain objects and "spaghetti code" implementation of the UI).  However, this is very good stuff to include in guidance documentation.