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:
05-01-2010 12:34 PM
Filed under: WPF, .NET 3.0, databinding, WPF/e, .NET 3.5, Caliburn, Featured, Silverlight, Flash, RIA, Tutorial, MVVM, UI Architecture