.NET & Funky Fresh



  • <script type="text/javascript" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822/US/bluspiconinc-20/8001/8b68bf4b-6724-40e7-99a5-a6decf6d8648"> </script>
MVVM Study - Interlude

There’s a whole lot of talk these days about MVVM. It’s the “hep” thing and everyone wants in. There isn’t a single day lately where someone doesn’t post about this topic (and I read their post..I’ve tried really hard to read everything I find). I’ve tweeted that all these posts have caused a great deal of noise, distracting developers from the interesting and really useful information. But, I’m going to relent on that. It’s important that developers try MVVM, succeed or fail, and blog about it. Writing and communicating is an important part of the learning process. What I do ask is that you are open to criticism and interested in learning new things. I expect that of myself and I’ve tried really hard to receive criticism on Caliburn and taken seriously the criticism and comments of others on this series of posts. In fact the entire second post in this series was the result of me struggling with a very evocative comment that someone made on my first post.  In the end, I felt I learned something about MVVM because of that. I don’t want to toot my own horn though. Taking criticism is hard and I’ve failed to receive it amicably many times in the past. I really liked this MVVM blog post though. The author begins by inviting criticism and states where he is in his process of learning. He then proceeds to a pretty well-rounded explanation. I think that’s a great attitude and I want to learn to proceed better after that fashion.

One of the best things we can do in our understanding of MVVM, is to explore other presentation patterns as well. MVVM is not a silver bullet. If you are interested in creating maintainable, extensible, testable…and simple UI, you owe it to yourself to spend some time studying. I’m warning you ahead of time, you are going to struggle through some of this stuff.  I lost count of the number of conversations Christopher and I have had over the last few years, just trudging through this stuff trying to understand the nuances. But let me encourage you, the benefits are worth the invested time and they will outlive any one stylish pattern, framework or programming language. The investment will continue to repay you as long as you write software.

If you are interested in moving beyond simple MVVM or just want to understand other solutions to similar problems, let me provide you with a few readily available resources:

Posted 05-01-2010 12:34 PM by Rob Eisenberg



Michael Washington wrote re: MVVM Study - Interlude
on 05-01-2010 1:07 PM

Thanks for this blog. I just posted regarding a discussion you and I had on CodeProject.com that I do apologize for not taking into account how it must feel to spend years carefully creating a framework that you intend to help people with, and then some guys come along and use the name and violate some of what you feel are the basic principals of that framework.

I hope that using "Simplified MVVM" would provide a respectful distance and show respect for what came before.

B. Balok wrote re: MVVM Study - Interlude
on 05-03-2010 10:19 AM

When we started with WPF development we read a lot about MVVM.  What I have found is I am writing the same amount and type of code as before but just placing it into it's own container instead of the UI codes container.  So my UI codes deal with UI events and then call the View Model when it needs to deal with the data.  Maybe I am not smart enough about MVVM yet but it has not saved me from writing less code and the model created is created for the specific UI so I have not been able to share these view models withing the system.

n0mad wrote re: MVVM Study - Interlude
on 05-03-2010 1:05 PM

IMHO, MVVM is for testability, not a reduction in code amount (actually, maybe an increase, but test code == goodness).

Josh Smith wrote re: MVVM Study - Interlude
on 05-04-2010 4:48 PM

Great post, Rob.  I think it's a useful aggregation of links, too.  

I would like to point out, though, that the sole piece of criticism about my book "Advanced MVVM" that you linked to is the only one that is foaming-at-the-mouth against the book.  There have been several other reviews, such as the one by Ward Bell, which present constructive criticism and a thumbs up.

I feel that I should stand up for myself here, since people who only read the criticism you linked to might assume that it is the only review available.  There are more reviews of my book out there, which I list on http://advancedmvvm.com



Rob Eisenberg wrote re: MVVM Study - Interlude
on 05-04-2010 4:57 PM

Oops. Sorry Josh! I forgot about Ward's review, probably because of all the hoopla around Justin's review. I will edit the links and add it so that your book isn't represented in an unbalanced way. I didn't mean any harm there. Thanks for letting me know.

Josh Smith wrote re: MVVM Study - Interlude
on 05-04-2010 6:41 PM

Thanks, Rob.  I appreciate it! :)


Ex-MVVM wrote re: MVVM Study - Interlude
on 05-05-2010 9:40 AM

We have re-written one of our in-house apps using MVVM, WPF recently. The development process became a lot more complicated. The amount of code required is not any less. Everything is "wrapped" again and again, interface after interface, worst, the app is not running any faster. The only good thing is WPF has more bells and whistles in the UI. We are not convinced by MVVM with our own experience. It is not realistic for our apps.  Though I understand MVVM is not a silver bullet and nothing is. But I learn what sounds and looks good from a conference or presentation does not necessarily apply in the real world.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)