WPF Application Framework (WAF) alternatives and similar packages
Based on the "MVVM" category.
Alternatively, view WPF Application Framework (WAF) alternatives based on common mentions on social networks and blogs.
-
ReactiveUI
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application. -
Prism
Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications.. -
MVVMCross
The .NET MVVM framework for cross-platform solutions, including Android, iOS, MacCatalyst, macOS, tvOS, WPF, WinUI -
Caliburn.Micro
A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability. -
MVVM Light Toolkit
DISCONTINUED. The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone. -
Gemini
Gemini is an IDE framework similar in concept to the Visual Studio Shell. It uses AvalonDock and has an MVVM architecture based on Caliburn Micro. -
Stylet
A very lightweight but powerful ViewModel-First MVVM framework for WPF for .NET Framework and .NET Core, inspired by Caliburn.Micro. -
FreshMvvm
FreshMvvm is a super light Mvvm Framework designed specifically for Xamarin.Forms. It's designed to be Easy, Simple and Flexible. -
MVVM Dialogs
Library simplifying the concept of opening dialogs from a view model when using MVVM in WPF -
DotNetProjects.WpfToolkit
wpf toolkit fork of the MS WPF Toolkit (https://wpf.codeplex.com/releases/view/40535) -
Smaragd
A platform-independent, lightweight library for developing .NET applications using the MVVM architecture -
Web-Atoms Core
Light weight feature rich UI Framework for JavaScript for Browser with Dependency Injection, Mocking and Unit Testing -
Okra App Framework
DISCONTINUED. An app centric MVVM framework for Windows 8.1 built with dependency injection in mind, including a full set of Visual Studio MVVM templates. -
MvvmMicro
A clean and lightweight MVVM framework for WPF, UWP and .NET Standard 2.0 inspired by MVVM Light Toolkit. -
UpdateControls
Update Controls does not require that you implement INotifyPropertyChanged or declare a DependencyProperty. It connects controls directly to CLR properties. This makes it perfect for the Model/View/ViewModel pattern.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of WPF Application Framework (WAF) or a related project?
README
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 (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.
Supported Platforms
- **.Core* (.NET Standard 2.0 and .NET Framework 4.6.1): Support for all .NET based applications.
- **.Wpf* (.NET Core 3.1 and .NET Framework 4.6.1): Extended support for Windows Presentation Foundation (WPF).
NuGet Packages
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 |
Features
System.Waf.Core
- Foundation
Cache
: Provides support for caching a value.Model
: Base class that implements INotifyPropertyChanged.ObservableListViewCore
: Provide change notifications for sorting and filtering.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.WeakEvent
: Supports listening to events via a weak reference. This can prevent memory leaks. See WeakEvent page for more details.
- Applications
System.Waf.Wpf
- Foundation
DataErrorInfoSupport
: Helper class for working with the legacy IDataErrorInfo interface.
- Applications
-
ApplicationInfo
: Provides information about the running application. ObservableListView
: Same as ObservableListViewCore but using weak event handlers.SynchronizingCollection
: Same as SynchronizingCollectionCore 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.
Sample Applications
Name | Type | Description | Links |
---|---|---|---|
Waf NewsReader | XamarinForms | A simple and fast RSS and ATOM news feed reader.Platforms: Android, UWP (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 | A simplified word processing application.Platforms: .NET 6Architecture: 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) | Doc |
Waf Book Library | WPF | Supports the user to manage his books. Borrowed books can be tracked by this application.Platforms: .NET 6Architecture: Layering, Extensions, MVVM, DMVVMEntity Framework with SQLiteValidation rulesSort & Filter in the DataGridReporting via WPF FlowDocument & Print support | Doc |
Waf Information Manager | WPF | A modular application that comes with a fake email client and an address book.Platforms: .NET 6Architecture: Layering, Modularization, MVVMOffice format ZIP container shared with all modules (Package API and DataContractSerializer)Validation rulesExtensible navigation view & context sensitive toolbarWizard dialog | Doc |
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, Microsoft Store | |
Waf DotNetPad | WPF | Code editor to program with C# or Visual Basic..NET Compiler Platform, Roslyn, AvalonEdit, Auto completion, Async/await, Microsoft Store | |
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 |