Creating M-V-VM Applications that are Tool-able

Join me and the Enterprise Developers Guild on Saturday, September 11, at 9:00 AM in the Mt. Kilimanjaro room of the Charlotte Microsoft Campus for a very special 1/2 day event featuring Karl Shifflett.


8:30 AM-9:00 AM = Registration
9:00 AM-9:30 AM = Part 1 – The Pattern
9:30 AM-10:30 AM = Part 2 – Structuring Applications
10:30 AM-10:45 AM = Break
10:45 AM-11:45 AM = Part 3 – Application Services
11:45 AM-12:00 PM = Break
12:00 PM-12:30 PM = Part 4 – Tool-able Applications
12:30 PM-1:00 PM = Part 5 – Testing Applications
1:00 PM = Close

Part 1 – The Pattern

During this 30 minute presentation you will get the answers to the following questions:

  • What is M-V-VM?
  • How does the pattern benefit my team and the applications we deliver?
  • Is this pattern a natural fit for XAML applications?
  • Does this pattern enable building tool-able applications?
  • Why is the XAML data binding stack critical to M-V-VM?
  • What about my designers, will they be able to work with this pattern?
  • What does thinking in M-V-VM mean?

Part 2 – Structuring Applications

The Internet is full of information around M-V-VM. Navigating the information and putting the pieces together can be a bit overwhelming at first, but it doesn’t have to be. At the end of this 60 minute presentation you will understand:

  • What is View first?
  • What is ViewModel first?
  • When do I use View or ViewModel first?
  • Can I have multiple Views for a single ViewModel?
  • How do I wire up my View and ViewModels at run-time and design-time?
  • How does a View and ViewModel communicate with one another?
  • Should my ViewModel talk directly to Entity Framework or other data technologies?

Part 3 – Application Services

This 60 minute presentation will walk you through universal application requirements and how the M-V-VM pattern provides a simple solution to these questions:

  • How can a ViewModel initiate opening of a dialog and get a response?
  • How can a ViewModel log exceptions?
  • How can a ViewModel communicate to another ViewModel or View?
  • How can a ViewModel expose design-time sample data?
  • How can I resolve ViewModel dependencies?

Part 4 – Tool-able Applications

Tool-ability or Blend-ability is getting a lot of attention in the WPF, Silverlight and Windows Phone 7 space. At the end of 30 minute session you will understand:

  • Solutions to common coding problems that limit the tool-ability of an application
  • Techniques for surfacing design-time sample data

Part 5 – Testing M-V-VM Applications

One of the motivations for using the M-V-VM pattern is to be able to easily test the application logic. This 30 minute session will cover unit and integration testing in M-V-VM applications. At the end of this session you will be able to answer:

  • How can I test a ViewModel in isolation and why should I care?
  • What tools are available to help me write tests and run them?

Since joining Microsoft two years ago Karl Shifflett has been a Cider Team Program Manager, working on the WPF and Silverlight Designer and recently transferred to the Prism Team at Patterns and Practices. He is very passionate about product quality and Microsoft customers. Karl is very well known in the .NET community, loves teaching and writing about the .NET platform.

Before Microsoft, Karl was a software architect, former Microsoft MVP and Code Project MVP. He has been designing & developing business applications since 1989 and transitioned to .NET in March of 2003 writing ASP.NET applications. In April of 2007 he joined the list of WPF fanatics & evangelists.

He is a member of Team Mole that delivered the Mole Visualizer for Visual Studio to the world. He is the author of the very popular XAML Power Toys and XAML IntelliSense Presenter; loves WPF LOB and is developing a passion for Windows Phone 7 and ASP.NET MCV.

Karl is a member of the Seattle ALT.NET, Seattle Silverlight User Group and the .NET Developers Association in Redmond, WA.

In his spare time he writes lightweight cross-platform .NET frameworks that handle validation, navigation, data access, etc. Karl is also working on a metadata driven code generation application called Crank. Karl enjoys going on week-long cruises to write code; he says, “Something about the gentle rocking of the ship, cool ocean breezes and panoramic scenery energize creative juices.”

The meeting is sponsored by Signature Consultants.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s