MVVM: Tutorial from start to finish?

C#.NetWpfMvvm

C# Problem Overview


I'm a C#/Windows Forms programmer with more than 5 years experience. I've been investigating WPF using the MVVM (Model-View-ViewModel) design pattern. I have searched the Internet for tutorials. I have even watched the entirety of Jason Dolinger's awesome video. Although I have found many, I have not found one that takes me from start to finish. What I really want is a tutorial that doesn't assume any previous WPF knowledge.

What are your favorite WPF-MVVM tutorials that helped you to learn?

C# Solutions


Solution 1 - C#

Your question really seems to be asking 2 questions:

  1. Where are some good tutorials on WPF, assuming I have no previous WPF experience?
  2. Where are some good tutorials on learning MVVM?

Some of these resources may be duplicated in previous answers...

Tutorials on WPF

MVVM Tutorials

Composite WPF (Prism) Resources
Though not exactly what you asked, it is the natural progression with WPF and MVVM.

Solution 2 - C#

I was in exactly the same situation recently, mate, and I can tell you what I did.

Josh Smith "WPF Apps With The Model-View-ViewModel Design Pattern" read again, again and again :-) download the code, examine, compile and keep it around

MVVM foundation

  1. Examine the framework, use it in your app.
  2. Look at the Demo application in that framework.

No real start-to-finish tutorials, sorry...

Solution 3 - C#

I really liked these articles:

  1. MVVM for Tarded Folks Like Me
  2. How Tards Like Me Make MVVM Apps

He really dumbs down the concept in a humorous way. Worth reading.

Solution 4 - C#

Reed Copsey published a nice tutorial that writes a trivial RSS app in WinForms, then makes a straight port to WPF, and finally converts to MVVM. It makes a nice introduction to MVVM before you try and tackle a full description like Josh Smith's article. I'm glad that I read Reed's tutorial before Josh's article, because it gives me a little context to understand the details that Josh is digging into.

Solution 5 - C#

Solution 6 - C#

I read Josh Smith's article and found it very difficult. Once understood, I wrote a very simple one that should get you really started on it. Get it here.

Solution 7 - C#

There's a very good Techdays 2010 video introduction to the MVVM pattern, clearly explained:

Solution 8 - C#

This isn't a tutorial, but it's the diagram on this page that helped me get my head around mvvm.

Solution 9 - C#

A while ago I was in a similar situation (allthough I had a little WPF knowledge already), so I started a community wiki. There are a lot of great ressources there:

What applications could I study to understand (Data)Model-View-ViewModel?

Solution 10 - C#

Some blogs/websites to check out:

Currently, Josh Smith has a "From Russia With Love" article that can be of some use to you.

Solution 11 - C#

My blog has a complete series of tutorial starting from scratch for WPF MVVM and WPF Prism. Have a look here: http://blog.raffaeu.com/archive/2009/06/03/wpf-and-vmmv-tutorial-01-introduction.aspx

Solution 12 - C#

Solution 13 - C#

For something released a little more recently (last month), take a look at Rainer Stropek's video series MVVM in WPF and Silverlight

He flies right through it, but does an extremely good job of going from start to finish with an actual application.

Solution 14 - C#

Take a look at [Jason Dollinger's MVVM video at Lab49][1]. We have used this in the past to train our team on MVVM.

[1]: http://www.lab49.com/files/videos/Jason%20Dolinger%20MVVM.wmv "Jason Dollinger's MVVM video from Lab49"

Solution 15 - C#

Don't skip John Papa's presentation from PDC Conference 2010. See it here.

Solution 16 - C#

I have written an application using WPF, Prism and MVVM to simulate hiring a cab, you can read about it on my blog, download the source here and play with it.

Solution 17 - C#

If you are coming from winforms and you are looking for a tutorial. I recommend you the MVVM Trainning extension for visual studio: http://visualstudiogallery.msdn.microsoft.com/3ab5f02f-0c54-453c-b437-8e8d57eb9942 It´s a tutorial with code examples. The tutorial is divided in 3: Basic WPF app, the same app in MVVM and the same using Inversion of control. Quite useful in your case :)

I also like these ones http://msdn.microsoft.com/en-us/magazine/dd419663.aspx http://karlshifflett.wordpress.com/mvvm/

and this one is with Prism. http://www.developmentalmadness.com/archive/2009/10/03/mvvm-with-prism-101-ndash-part-1-the-bootstrapper.aspx It may be worth it to take a view to Prism if you are thinking to program WPF apps with MVVM

Solution 18 - C#

Solution 19 - C#

Solution 20 - C#

Solution 21 - C#

Solution 22 - C#

Here is a very good tutorial for MVVM beginners; http://geekswithblogs.net/mbcrump/archive/2010/06/27/getting-started-with-mvvm-general-infolinks.aspx [Getting started with MVVM (General Info+Links)]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJP RichardsonView Question on Stackoverflow
Solution 1 - C#Metro SmurfView Answer on Stackoverflow
Solution 2 - C#Max GalkinView Answer on Stackoverflow
Solution 3 - C#JP RichardsonView Answer on Stackoverflow
Solution 4 - C#Don KirkbyView Answer on Stackoverflow
Solution 5 - C#Michael WashingtonView Answer on Stackoverflow
Solution 6 - C#Abdulsattar MohammedView Answer on Stackoverflow
Solution 7 - C#Chris SView Answer on Stackoverflow
Solution 8 - C#Simon P StevensView Answer on Stackoverflow
Solution 9 - C#bitbonkView Answer on Stackoverflow
Solution 10 - C#Muad'DibView Answer on Stackoverflow
Solution 11 - C#raffaeuView Answer on Stackoverflow
Solution 12 - C#Cocoa DevView Answer on Stackoverflow
Solution 13 - C#James SkempView Answer on Stackoverflow
Solution 14 - C#Brent SchooleyView Answer on Stackoverflow
Solution 15 - C#pencilCakeView Answer on Stackoverflow
Solution 16 - C#skjaginiView Answer on Stackoverflow
Solution 17 - C#Asier BarrenetxeaView Answer on Stackoverflow
Solution 18 - C#WeggedView Answer on Stackoverflow
Solution 19 - C#bijuView Answer on Stackoverflow
Solution 20 - C#pchajerView Answer on Stackoverflow
Solution 21 - C#Gurpreet SinghView Answer on Stackoverflow
Solution 22 - C#SunilView Answer on Stackoverflow