Has the MVVM pattern been adopted widely in real world Silverlight projects

mvvmsilverlightwpf

MVVM pattern is a hot word recently and I am planning to learning and refactor my existing project into this pattern. I have no experience and foresight of the potential risk.
Have you guys really get lots of benefit from the MVVM Pattern in real-world projects?
Is it worth refactoring an existing non-MVVM (mainly using Code-Behind files) into the MVVM pattern?

Best Answer

I've done 4 silverlight projects and 1 WPF project for customers and all of them were done using the MVVM pattern. So to answer your question if it's widely adopted... yes.

Is it worth refactoring an old project to make use of the MVVM pattern? That depends on the project. Is testability an important factor of the project than without a doubt it is good practice converting the project. If the project is in the begin phase then I would also recommend to make use of the MVVM pattern as it will encourage you to produce cleaner and less coupled code. Is the existing project in an advanced stage and are there other patterns involved then it depends on the budget and time of the project whether it's worth converting it.

Just a little side node of myself. The more I'm making use of MVVM, the more I'm starting to be bothered of the complexity a viewmodel can get and the less I am convinced of whether MVVM is THE way to go in Silverlight / WPF applications. I find it irritating to have my Commands and data properties in the same place because there is no clean sepperation anymore between data and command. For that I would encourage people to also have a look at the MVVMC pattern that solves these issues.