Project Description
The WPF Application Framework (WAF) is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel (aka MVVM, M-V-VM, PresentationModel) pattern.
Downloads
Downloads Overview: Lists the WPF Application Framework (WAF) downloads for various platforms (e.g. .NET4, .NET3.5, WPF, Windows Forms, Silverlight3).
Architecture
Cannot resolve image macro, invalid image name or id.Figure 1: The Model-View-ViewModel (M-V-VM) Pattern
Features
- WPF Application Framework (WAF)
- ViewModel: Contains base classes that help you to implement the Model-View-ViewModel Pattern.
- DelegateCommand: The DelegateCommand allows you to handle WPF commands in other classes than the View.
- INotifyPropertyChanged: The base classes implement the INotifyPropertyChanged interface. This implementation checks the property name string in DEBUG mode.
- WeakEvent: The base classes support the WeakEvent Patterns of WPF. (Note: WPF uses the WeakEvent Patterns instead of the IDisposable interface)
- Services: Provides services to show a message or the open/save file dialog to the end user.
- Unit Testing Extensions
- Exceptions: The ExpectedException method test if an action results in a specified exception.
- PropertyChanged: Provides a helper method to test if a property changed event is raised when a specific action is executed.
- CanExecuteChangedEvent: A helper method to test if a CanExecute changed event is raised when a specific action is executed.
- Samples
- Email Client: A simple Email Client application that shows how to use the M-V-VM Pattern in a wizard oriented application.
- Writer: A word processing application which uses a “tabbed MDI” as user interface. This sample shows how to use the Message and FileDialog service.
- Book Library: Shows how to use the Entity Framework and Validation together with the MVVM pattern.
- Localization: Demonstrates a simple way to localize a WPF application.
Documentation
Requirements
Microsoft .NET Framework 3.5 SP1 or
Microsoft .NET Framework 4.0