Slides and Code from my Silverlight MVVM Talk at DevConnections
I had a great time at the DevConnections conference in Las Vegas this year where Visual Studio 2010 and Silverlight 4 were launched. While at the conference I had the opportunity to give a full-day Silverlight workshop as well as 4 different talks and met a lot of people developing applications in Silverlight. I also had a chance to appear on a live broadcast of Channel 9 with John Papa, Ward Bell and Shawn Wildermuth, record a video with Rick Strahl covering jQuery versus Silverlight and record a few podcasts on Silverlight and ASP.NET MVC 2. It was a really busy 4 days but I had a lot of fun chatting with people and hearing about different business problems they were solving with ASP.NET and/or Silverlight. Thanks to everyone who attended my sessions and took the time to ask questions and stop by to talk one-on-one.
One of the talks I gave covered the Model-View-ViewModel pattern and how it can be used to build architecturally sound applications. Topics covered in the talk included:
- Understanding the MVVM pattern
- Benefits of the MVVM pattern
- Creating a ViewModel class
- Integrating a Service Agent
- Loading a Service Agent using MEF (shown in the sample)
- Implementing INotifyPropertyChanged in a ViewModelBase class
- Binding a ViewModel declaratively in XAML
- Binding a ViewModel with code
- ICommand and ButtonBase commanding support in Silverlight 4
- Using InvokeCommandBehavior to handle additional commanding needs
- Working with ViewModels and Sample Data in Blend
- Messaging support with EventBus classes, EventAggregator and Messenger
- My personal take on code in a code-beside file (I’m all in favor of it when used appropriately for message boxes, child windows, animations, etc.)
One of the samples I showed in the talk was intended to teach all of the concepts mentioned above while keeping things as simple as possible. The sample demonstrates quite a few things you can do with Silverlight and the MVVM pattern so check it out and feel free to leave feedback about things you like, things you’d do differently or anything else. MVVM is simply a pattern, not a way of life so there are many different ways to implement it.
If you’re new to the subject of MVVM check out the following resources. I wish this talk would’ve been recorded (especially since my live and canned demos all worked :-)) but these resources will help get you going quickly.
- Getting Started with the MVVM Pattern in Silverlight Applications
- Model-View-ViewModel (MVVM) Explained
- Laurent Bugnion’s Excellent Talk at MIX10
Download sample code and slides from my DevConnections talk
For more information about onsite, online and video training, mentoring and consulting solutions for .NET, SharePoint or Silverlight please visit http://www.thewahlingroup.com.