Win Application Framework (WAF)
Successor of the WPF Application Framework
The Win Application Framework (WAF) is a lightweight Framework that helps you to create well-structured XAML Applications in WPF and UWP. It supports you in applying various architectural patterns:
How to get started?
- WAF comes with realistic real-world sample applications. Please have a look at them. See Sample Applications below.
- The Wiki provides further guidance.
- The fastest way to create a WAF project is by using the WAF Visual Studio Project Template. Please update the WAF NuGet packages to the latest stable version after project creation.
Starting with version 4 the framework comes with the new name Win Application Framework instead of WPF Application Framework. This rename shows that the framework supports now various application types:
- WPF (Windows Presentation Foundation)
- UWP (Universal Windows Platform)
- Core (Basic support for all .NET based applications)
Older versions of WAF 1.0 - 3.2 can be found at CodePlex: http://waf.codeplex.com
Cache: Provides support for caching a value.
Model: Base class that implements INotifyPropertyChanged.
SynchronizingCollectionCore: Represents a collection that synchronizes all its items with the items of the specified original collection.
ThrottledAction: Throttling of multiple method calls to improve the responsiveness of an application.
ValidatableModel: Base class for a model that supports validation by implementing INotifyDataErrorInfo.
DataErrorInfoSupport: Helper class for working with the legacy IDataErrorInfo interface.
DispatcherHelper: Implementation for DoEvents.
ResourceHelper: Helper methods to manage resources in WPF.
ValidationHelper: Support for data validation tracking.
BoolToVisibilityConverter: Converts a boolean value to and from a Visibility value.
InvertBooleanConverter: Inverts a boolean value.
NullToVisibilityConverter: Null condition to return the associated Visibility value.
StringFormatConverter: Converts an object into a formatted string.
ValidationErrorsConverter: Converts a ValidationError collection to a multi-line string error message.
FileDialogService: Shows an open or save file dialog box.
MessageService: Shows messages via the MessageBox.
AssertHelper: Assertion helper methods for expected exceptions, CanExecuteChanged event and PropertyChanged event.
UnitTestSynchronizationContext: Synchronization context for unit tests that simulates the behavior of the WPF or Windows Forms synchronization context.
|System.Waf.Wpf||For WPF applications||waf|
|System.Waf.Uwp||For Universal Windows Apps|
|System.Waf.Core||For all .NET based applications|
|System.Waf.UnitTesting.Wpf||For unit testing of WPF applications||waf.testing|
|System.Waf.UnitTesting.Core||For unit testing of all .NET based applications|
|Jbe NewsReader||UWP||A simple and fast RSS and ATOM news feed reader.
|Waf Writer||WPF||A simplified word processing application.
|Waf Book Library||WPF||Supports the user to manage his books. Borrowed books can be tracked by this application.
|Waf Information Manager||WPF||A modular application that comes with a fake email client and an address book.
|Waf Music Manager||WPF||Fast application that makes fun to manage the local music collection.
WinRT, Media playback, File queries & properties, Async/await, Drag & Drop, ClickOnce
|Waf DotNetPad||WPF||Code editor to program with C# or Visual Basic.
.NET Compiler Platform, Roslyn, AvalonEdit, Auto completion, Async/await, ClickOnce
|Waf DotNetApiBrowser||WPF||Windows application for browsing the public API of .NET Assemblies and NuGet packages.
.NET Compiler Platform, Roslyn, AvalonEdit, NuGet, Async/await, Validation, ClickOnce