I like learning cool new stuff but I hate steep learning curves. Some messages in AZGroups inspired me to do this post. I am long overdue for a blog post anyway. I want to kick off a post getting people started off with lightweight MVVM frameworks, especially ones for Silverlight. The goal is to have a post referencing some good MVVM “light” frameworks, links to good examples and tutorials on these frameworks, MVVM in general, and some good ideas to get people rapidly productive using these tools and concepts. It took me long enough to learn this, so let’s get some stuff up that other people can use to compress their learning curves. I’ll post some of my ideas, you can post responses, and I’ll try to organize things as time goes by. This is a post that’s intended to be updated a lot.
First of all, let’s start with Laurent Bugnion’s MVVM Light. This is something that got me on the right track to learning MVVM for Silverlight. Works great for WPF also. Download the toolkit at . Laurent Bugnion’s site is at , There you can find lots of resources for his framwork and MVVM in general.
MVVM Light Survival Guide – Good point to get down and focus on for flatten the learning curve.
- Code Behind – this is all the spaghetti we used to have in our VB6, MFC, VB/C# .NET Winform, etc projects. Think about those 1500+ lines of slop in the code behind file for a form VB .NET project. You might have not even written it, but it’s in you lap and you need to fix, enhance, and understand it. This is the stuff that makes a project hard to maintain and impossible to test. This the stuff that needs to go. Think of code-behind, a carton of cigarettes, and kicking the habit.
- Behaviors – a good understanding of behaviors is necessary for proficiency at MVVM. I will update this post with examples for behaviors using the Blend SDK. We can use the Blend SDK without having to install Blend. Blend is nice and is your friend, albeit not free. You can write behaviors without using the Blend SDK however. In many respects, a behavior is a conduit for handling one or more events in a Silverlight/WPF control in a code module. They are applied in the XAML in a declarative manner.
- Design Time &ndash MVVM is great designing. Can’t do this with code-behind. A master-detain view showing up in Cider or Blend with design time data will get team members excited about kicking any lingering code behind habits.