MVVM in WPF Survival Guide From A to Z (The Course)
Minimum price
Suggested price

Course Info

This course includes 1 attempt.

MVVM (stands for Model-View-ViewModel) is a well-known architectural pattern in the world of WPF. Most enterprise level WPF applications are MVVM-based.

Learn deeply the concepts lying behind the MVVM pattern in order to understand what MVVM is in essence and how to pragmatically apply it to a WPF application. This is a great MVVM tutorial for beginners (beginners in MVVM, don't forget to look at prerequisites)!

Teaching Approach 

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. Take this course and you will be satisfied. 

Build a strong foundation in applying MVVM with this course 

In the case you’re just familiar with the WPF framework, learning this course will give you a level-up since you’ll be capable of developing professional WPF applications. Applying MVVM intelligently is a “must have” skill for WPF developers. 

If you are an experienced WPF developer, you might be interested in how MVVM frameworks may work under the hood. Throughout the course, we will be building a small MVVM framework similar to Caliburn.Micro. 

Content and Overview 

This course is primarily aimed at intermediate developers. Experts may also find interesting MVVM tricks provided in this course. If you are a beginner, be sure you’re ready to take this course, since it requires from you a solid C#-background and acquaintance with WPF. 

This course provides solid theoretical base reinforced by tons of practical material. This course is very practical (except the very first introductory module). 

“MVVM in WPF” is a very wide topic and it’s hardly possible to cover all the related challenges arising while applying MVVM. That’s why this course includes the most important topics understanding of which is a key for successful development. We will sacrifice some topics which may be interesting for students, but which are hardly connected with MVVM directly. What I’m talking about is, for example, the problem of setting up a full-fledged data access layer. Such topics are omitted. 

The most beneficial aspect of this course is that it gives you the deep understanding of the MVVM pattern. For example, you’ll see how to pass parameters to ViewModels through constructors, without using a static message bus, or passing parameters by explicitly setting properties of a ViewModel. 

In short, the course covers the following topics: 

  • MVVM background: what is MVVM, why to use it, when to use MVVM etc.
  • Connecting Views and ViewModels: View-First and ViewModel-First approaches 
  • Design-Time data support 
  • Configuring and using an IoC-container (by the example of Castle.Windsor 
  • Communication channel between Views and ViewModels: commands, attached and blend behaviors, static message bus (EventAggregator) 
  • Navigation: hierarchical UI composition, how to open dialogs, including modal dialogs, navigating to parameterized ViewModels (pass parameters into their constructors) 
  • Models and validation 
  • MVVM toolkits: Caliburn.Micro more closely
  • Unit-Testing of ViewModels


Keywords related to the course:

  • MVVM in WPF
  • MVVM tutorial
  • MVVM pattern
  • Model-View-ViewModel MVVM tutorial
  • Caliburn.Micro
  • View-First
  • ViewModel-First


Course Material

  • MVVM in WPF Survival Guide From A to Z
  • Promo-01
  • Introduction to MVVM
  • Outline
  • Applications Maintaining
  • Why MVVM
  • MVVM in a Nutshell
  • Services in MVVM
  • Educational App Overview
  • Monolithic Design
  • Downsides of MVVM
  • Conclusion
  • Connecting Views and ViewModels
  • Outline
  • Naming Conventions
  • Preparing Solution
  • View vs View First
  • View First Approach
  • View First-Straight Forward
  • View First-Autowire
  • Boot And IoC-Intro
  • Boot And IoC-Demo
  • Design Time-Intro
  • Design Time-Demo-Separate
  • Design Time-Demo-Clean
  • View-First Demo-Explicit
  • VM-First-Intro
  • VM-First-Demo
  • Conclusion
  • Communicating Views and ViewModels
  • Outline
  • Commands in WPF
  • Relay Command
  • Commands In Practice
  • Behaviors Intro
  • Attached Behaviors In Practice
  • Blend Behaviors In Practice
  • Message Bus. Intro
  • Message Bus. Demo
  • Conclusion
  • Navigation and Other Services
  • Outline
  • Locating MVVM Components
  • UI-Composition
  • Navigation without Parameters
  • Navigation with Parameters
  • Homework - Navigation without MessageBus
  • Dialogs. Intro
  • Dialogs API Demo
  • Applying Dialogs API
  • Making INotifyPropertyChanged Less Painful
  • Conclusion
  • Models and Validation
  • Outline
  • Models Wrapping
  • Stateful ViewModel vs Stateless ViewModel
  • Validation. Intro
  • Validation. Demo 1
  • Validation. Demo 2
  • Conclusion
  • MVVM Frameworks
  • Outline
  • MVVM Frameworks
  • Prism and MVVM-Light
  • Caliburn. Intro
  • Caliburn. Demo
  • Conclusion
  • Final Words
  • Appendix A1 - Unit Testing
  • 01-Unit Testing
  • Appendix B1 - Building a Real-World App
  • Building a Real-World Application-01-Outline
  • Building a Real-World Application-02-Creating Solution
  • Building a Real-World Application-03-Constructing MainWindow
  • Building a Real-World Application-04-Implementing Logic of MainWindow
  • Building a Real-World Application-05-Constructing GameWindow
  • Building a Real-World Application-06-Implementing Logic of GameWindow
  • Building a Real-World Application-08-Preparing MVVM-based App
  • Building a Real-World Application-09-Bootstrapping
  • Building a Real-World Application-10-Models and Services
  • Building a Real-World Application-18-Implementing the Remaining Part
  • Appendix C1 - Dependency Inversion Principle
  • Outline
  • Pure DI and IoC
  • Building a Simple IoC-Container
  • ServiceLocator
  • Demo with an IoC-Container
  • Conclusion


    • I'm thankful enough for that I love what I do.

      I began my career as a postgraduate student participating in Microsoft ImagineCup contest.

      I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for more than 10 years, primarily based on the .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MskDotNet User Group in Moscow.

      "If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.

      What I can say is that software is my art.

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub