A lightweight .NET framework for building well-structured XAML applications (MAUI, WPF, WinUI) using MVVM and layered architecture.
Win Application Framework (WAF) is a lightweight .NET framework that helps developers build structured XAML applications for platforms like MAUI, WPF, and WinUI. It provides foundational components and patterns such as MVVM, layered architecture, and data binding to reduce boilerplate and improve maintainability. The framework addresses the complexity of desktop and cross-platform app development by offering reusable utilities for commands, validation, caching, and UI services.
Developers building desktop or cross-platform applications with .NET and XAML, particularly those using WPF, MAUI, or WinUI who want to implement MVVM patterns and clean architecture.
WAF stands out for its practical, minimal approach—it provides just enough structure to enforce best practices without being overly opinionated. Its comprehensive sample applications demonstrate real-world usage, and it includes dedicated unit testing support, making it a robust choice for production-ready apps.
Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides base classes like Model and ValidatableModel for easy INotifyPropertyChanged and INotifyDataErrorInfo support, reducing boilerplate code in XAML apps, as shown in the Wiki examples.
Offers ObservableList and ObservableListViewCore with built-in sorting, filtering, and change notifications, simplifying data manipulation in UI, documented in the features list.
Includes multiple real-world samples like Waf Writer and Waf NewsReader, demonstrating practical usage across WPF, MAUI, and WinUI with detailed architecture notes.
Dedicated NuGet packages with AssertHelper and UnitTestSynchronizationContext facilitate testing of UI components and commands, as highlighted in the unit testing features.
WAF does not provide a DI container, requiring developers to implement their own or rely on external libraries for dependency management, which adds complexity for larger applications.
Many services like FileDialogService and MessageService are specific to WPF, limiting immediate utility for MAUI or WinUI without adaptation, as noted in the platform-specific packages.
As a framework focused on architecture, it lacks pre-built UI controls, forcing developers to create or source visual elements separately, unlike full-stack toolkits.