wpf development and mvvm pattern

WPF Enterprise MVVM Session 1: Building a base ViewModel class

ADO.NET Entity Framework
“This sample shows a WPF application built on top of the Microsoft ADO.NET Entity Framework. The application shows how the Entity Framework can be used in some common design patterns that promote testability and maintainability of code.”


MVVM Best Practices
“In this episode, recorded at TechEd in Houston, Robert is joined by Brian Lagunas of Infragistics, who shares with us best practices for building applications using MVVM. Brian starts off by reviewing what MVVM is and what it isn’t. He then demonstrates several things you should not do and why you should not do them. In addition to the demos, Brian gives his advice on how he approaches some common scenarios.”


WPF MVVM step by step (Basics to Advance Level)


5: Implementing the MVVM Pattern Using the Prism Library 5.0 for WPF


Prism 5.0 for WPF – April 2014
“Prism provides guidance designed to help you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications.”


WPF MVVM Example App


Simplified MVVM Commanding with DelegateCommand


Testing Tools
“Programmatic access and keyboard access to your application are two critical requirements for accessibility. Without adequate access, many users of assistive technology (AT), such as screen reader and on-screen keyboard users, would be unable to use your application. It is important to thoroughly test your application to ensure that it provides adequate information about its UI elements, and that all of your application scenarios can be accomplished with only the keyboard.”




DependencyProperties or INotifyPropertyChanged


DependencyProperties or INotifyPropertyChanged ?
“When you want to make an object binding-aware you have two choices : implements INotifyPropertyChanged or creates DependencyProperties.”
Optimizing Performance: Data Binding

WPF Dependency Properties vs INotifyPropertyChanged
“If you are doing WPF development you will not get very far before running into this decision. Should you use DependencyObject(and DependencyProperty) or should you implement INotifyPropertyChanged to support binding. This question boils down into two really. When do you “need” to use one or the other, and when might you “want” to choose one over the other.”


Alternative to INotifyPropertyChanged and DependencyProperty

Update Controls .NET
“Update Controls does not require that you implement INotifyPropertyChanged or declare a DependencyProperty. It connects controls directly to CLR properties. It discovers dependencies upon data through layers of intermediate code. This makes it perfect for the Model/View/ViewModel pattern; no extra code is needed in the ViewModel, which sits between the Model and the View.
Wrap the DataContext of your Window. The wrapper not only implements INotifyPropertyChanged for all of your object’s properties, it also automatically detects their dependencies on other properties. There is no base class or interface to implement.”