Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.
Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.
The Win Application Framework (WAF) is a lightweight Framework that helps you to create well-structured XAML Applications (MAUI, 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 10 | |
| .NET 10 | A simple and fast RSS and ATOM news feed reader. |
Platforms: Android, Windows and iOS
Architecture: Layering, MVVM, Async patterns
Sync feeds with multiple devices via MS Graph (OneDrive)
OAuth authentication
Responsive UI with Navigation pane
Validation (Add feed view)
Localized (English and German)
UI testing with Appium on Android, iOS and Windows with automated execution via GitHub Actions
Waf Writer | WPF .NET 10 | A basic word processing application.
Ribbon & Tabbed MDI (Multiple Document Interface)
Animated transition between pages
Most recently used file list (MRU)
Message service, Open/Save dialog service
Print preview & Print dialog
Localized (English and German)
UI testing with FlaUI and execution via GitHub Actions
Waf Book Library | WPF .NET 10 | Supports the user to manage books. Borrowed books can be tracked by this application.
Architecture: Layering, Extensions, MVVM, DMVVM
Entity Framework with SQLite
Validation rules
Sort & Filter in the DataGrid
Reporting via WPF FlowDocument & Print support
UI testing with FlaUI and execution via GitHub Actions
Waf Information Manager | WPF .NET 10 | A modular application that comes with a fake email client and an address book.
Architecture: Layering, Modularization, MVVM
Office format ZIP container shared with all modules (Package API and DataContractSerializer)
Validation rules
Extensible navigation view & context sensitive toolbar
Wizard dialog
UI testing with FlaUI and execution via GitHub Actions
Waf Music Manager | WPF .NET 10 | 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 10 | 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 10 | Simple tool that generates the hash values of one or more files. MS Store (MSIX), Async, Progress, Drag & Drop
No open issues yet, or sync has not completed.