views:

147

answers:

1

Hi Currently we just start releasing modules for a big project in MVVM but seems like the deliverables are starting to encounter a slowness with this model, such things as the learning curve effort and the fact that mvvm do requires a bit more code than other patterns, What Programming and software engineering techniques do you employ or thing could help us reduce the effort and speed up development?

things like code generation with T4 templates, ligth MVVM frameworks, use Expression Blend, hire a designer to hanle UX.

Thanks for any advice you could provide.

+1  A: 

Why is MVVM taking longer? What about it is? Is it MVVM, or is it due to use of WPF? Are you measuring 'taking longer' as initial implementation, or are you considering longer-term maintainability? What does your code look like?

Without knowing the answers to some of those questions, it's hard to get a good feel for how to help. In my experience, well-written MVVM code should be faster to develop than 'put all the code in the UI' style code, not to mention the testability, maintainability, and flexibility advantages.

(answering questions in comments here, since it's a long answer)

I've done my wpf work just using wpf. I don't bother with 'base' view classes unless I need them for some weird reason. A VM should be explicitly for a single view (dialog, etc.) of the data, so a base would not make sense. Having an interface for it usually doesn't gain much either, as typically what you want to do is bind the view to the viewmodel, and have the model abstracted for testability.

In short - don't overthink it Your viewmodel just presents the data the view wants as properties, and accepts commands from the view either using commands or plain methods. That's it.

kyoryu
we are consider long term architectural aspects as you mention maintanability, testability, answers like "well written mvvm code" the one you mentioned can help, in your opiniion whats does a well written code looks like,for what code do you delegate to the vm base class for example , do you have a IView and a ViewBase class, what mvmv framework do you use and why? have you purchase any wpf controls or do you use free.
Oscar Cabrero
And I may be able to give a more clear answer if you tell me what, specifically, is causing the code to take longer to write...
kyoryu

related questions