Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.
MIT License
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?
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
Cache
: Provides support for caching a value.Model
: Base class that implements INotifyPropertyChanged.ObservableList
: Extends the ObservableCollection
with support for INotifyCollectionChanging
and INotifyCollectionItemChanged
.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.SettingsService
: Load and save user settings as a XML file.System.Waf.Wpf
DataErrorInfoSupport
: Helper class for working with the legacy IDataErrorInfo interface.ViewModel
: Extends the ViewModelCore
class and automatically initializes the DataContext with the Dispatcher.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
: Check for null and 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.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 a UI synchronization context.Name | Type | Description |
---|---|---|
Waf NewsReader | MAUI.NET 8 | A simple and fast RSS and ATOM news feed reader.Platforms: Android, Windows and iOSArchitecture: Layering, MVVM, Async patternsSync feeds with multiple devices via MS Graph (OneDrive)OAuth authenticationResponsive UI with Navigation paneValidation (Add feed view)Localized (English and German) |
Waf Writer | WPF.NET 8 | A basic word processing application.Architecture: Layering, MVVMRibbon & Tabbed MDI (Multiple Document Interface)Animated transition between pagesMost recently used file list (MRU)Message service, Open/Save dialog servicePrint preview & Print dialogLocalized (English and German)UI testing with FlaUI and execution via GitHub Actions |
Waf Book Library | WPF.NET 8 | Supports the user to manage books. Borrowed books can be tracked by this application.Architecture: Layering, Extensions, MVVM, DMVVMEntity Framework with SQLiteValidation rulesSort & Filter in the DataGridReporting via WPF FlowDocument & Print supportUI testing with FlaUI and execution via GitHub Actions |
Waf Information Manager | WPF.NET 8 | A modular application that comes with a fake email client and an address book.Architecture: Layering, Modularization, MVVMOffice format ZIP container shared with all modules (Package API and DataContractSerializer)Validation rulesExtensible navigation view & context sensitive toolbarWizard dialog |
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 for programming C# and 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 |