The Win Application Framework (WAF) is a lightweight Framework that helps you to create well-structured XAML Applications (MAUI, Xamarin, WPF, WinUI). 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.
- *.Core (.NET 6.0 and .NET Standard 2.0): Support for all .NET based applications.
- *.Wpf (.NET 6.0 and .NET Framework 4.7.2): Extended support for Windows Presentation Foundation (WPF).
Package | Usage | Successor of |
---|---|---|
System.Waf.Core | For all .NET based applications | |
System.Waf.Wpf | For WPF applications | waf |
System.Waf.UnitTesting.Core | For unit testing of all .NET based applications | |
System.Waf.UnitTesting.Wpf | For unit testing of WPF applications | waf.testing |
System.Waf.Core
- Foundation
Cache
: Provides support for caching a value.Model
: Base class that implements INotifyPropertyChanged.ObservableList
: Extends theObservableCollection
with support forINotifyCollectionChanging
andINotifyCollectionItemChanged
.ObservableListViewCore
: Provide change notifications for sorting and filtering.SynchronizingList
: 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.WeakEvent
: Supports listening to events via a weak reference. This can prevent memory leaks. See WeakEvent page for more details.
- Applications
- Presentation
SettingsService
: Load and save user settings as an XML file.
System.Waf.Wpf
- Foundation
DataErrorInfoSupport
: Helper class for working with the legacy IDataErrorInfo interface.
- Applications
ObservableListView
: Same as ObservableListViewCore but using weak event handlers.ViewModel
: ViewModel base class which sets the DataContext delayed via the Dispatcher.
- Presentation
DispatcherHelper
: Implementation for DoEvents.ResourceHelper
: Helper methods to manage resources in WPF.ValidationHelper
: Support for data validation tracking.- Converters
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.
- Services
FileDialogService
: Shows an open or save file dialog box.MessageService
: Shows messages via the MessageBox.
System.Waf.UnitTesting.Core
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.
Name | Type | Description |
---|---|---|
Waf NewsReader | MAUI .NET 8 |
A simple and fast RSS and ATOM news feed reader. |
Waf Writer | WPF .NET 8 |
A simplified word processing application. |
Waf Book Library | WPF .NET 8 |
Supports the user to manage his books. Borrowed books can be tracked by this application.
|
Waf Information Manager | WPF .NET 8 |
A modular application that comes with a fake email client and an address book.
|
Waf Music Manager | WPF .NET 8 |
Fast application that makes fun to manage the local music collection. MS Store (MSIX), WinRT, Media playback, File queries & properties, Async/await, Drag & Drop |
Waf DotNetPad | WPF .NET 8 |
Code editor to program with C# or Visual Basic. MS Store (MSIX), .NET Compiler Platform, Roslyn, AvalonEdit, Auto completion, Async/await |
Waf File Hash Generator | WinUI 3 .NET 8 |
Simple tool that generates the hash values of one or more files. MS Store (MSIX), Async, Progress, Drag & Drop |