In two weeks I’ll be presenting for the Portland Area .Net User Group at the Microsoft office here in Portland. I'll be discussing the Model-View-ViewModel design pattern (MVVM). Last summer I was planning on giving this same presentation during the Portland Code Camp. Unfortunately I had to back out at the last minute, due to being swamped with work, getting ready for a new baby, and more work (ah the joys of being a startup junkie). I took a good amount of flak for backing out (and rightly so). A number of people wanted to see that presentation and I let them done, for that I apologize.
You're probably wondering exactly what will be discussed during this presentation. I've included the official abstract below, but you should know that my primary goal is to have a discussion with folks and help them understand why MVVM is a pattern worth learning about. Sure there will be demos and examples, and we'll even go through some tool recommendations. But honestly, I'll have only enough time to help you begin to understand this design pattern. What I want is people to leave the meeting with a desire to begin to learn MVVM, and the discipline to begin to adopt it.
Examining Model-View-ViewModel (MVVM)
MVVM is a design pattern for building rich clients in both Silverlight and WPF. Frankly, there's a lot of buzz around this idea, but why should you care about it (other than to pad your resume)?
In this session I'll be making the case both for and against using MVVM. I'll go over what it is, show how you can use it, and will be including plenty of examples. I'd also like to discuss some of your concerns for why you may want to avoid it, and lastly examine some tools that make it easier to use.
Even if you don't currently use WPF or Silverlight you should still attend this presentation. At the very least you'll leave with an understanding of MVVM such that you'll be able to comfortably discuss it during your next job interview.
That last sentence in the abstract isn't a joke, but it may be a bit far reaching. I believe that in order to be comfortable discussing MVVM during a job interview you'll first need to have used it, practiced with it, and have done more than just skimmed MSDN articles and read through code examples. In August I interviewed with Cynergy Systems and they tested both my level of knowledge and experience with MVVM. Despite my lack of "professional" experience with MVVM (courtesy of my previous employer), I was still able to intelligently discuss MVVM, explain how and why I would use, and demonstrate where I'm using it in some personal projects. I am confident you will begin to see more employers testing and filtering candidates based on their knowledge and experience of MVVM. The adoption of rich clients (both Silverlight and WPF) is climbing steadily and this pace will only increase as companies are forced to distinguish themselves through usability and user experience, rather than feature sets.
My goal with this presentation will be to whet your appetite and hopefully spark a desire to go off on your own and learn more. It takes discipline to learn and adopt something new, and WPF is hard, especially if you've been doing WinForms for the last few years. When you're ready to take your education to the next level then you should seriously check out Shawn Wildermuth's Silverlight Tour. They'll be here in Portland on December 2nd-4th. You might want to pencil that into your calendar now, I'm guessing this class will fill up soon after the PDC announcements regarding Silverlight 4 and Silverlight for mobile.
So if you're going to be in or around Portland on November 3rd, please stop on by. The meeting starts around 6:00pm with free pizza. Afterwards we go across the street to Gustav's for socializing and continued discussions. Hopefully I'll see you there.