/waf

Win Application Framework (WAF) is a lightweight Framework that helps you to create well structured XAML Applications.

Primary LanguageC#MIT LicenseMIT

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 in WPF and UWP. 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.
  • The fastest way to create a WAF project is by using the WAF Visual Studio Project Template. Please update the WAF NuGet packages to the latest stable version after project creation.

Supported Platforms

  • *.Core (.NET Standard 2.0 and .NET Framework 4.6.1): Support for all .NET based applications.
  • *.Wpf (.NET Framework 4.6.1): Extended support for Windows Presentation Foundation (WPF).
  • [Experimental] .NET Core 3.0 with WPF: See Git Branch: netcoreapp3.0

Features

System.Waf.Core

  • Foundation
  • Applications
    • (Async)DelegateCommand: An implementation of ICommand that delegates Execute and CanExecute.
    • RecentFileList: Most recently used (MRU) file list.
    • ViewModelCore: ViewModel base class with a simple approach to set the DataContext.

System.Waf.Wpf

  • Foundation
    • DataErrorInfoSupport: Helper class for working with the legacy IDataErrorInfo interface.
  • Applications
  • 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

NuGet Packages

Package Usage Successor of
System.Waf.Wpf For WPF applications waf
System.Waf.Uwp For Universal Windows Apps
System.Waf.Core For all .NET based applications
System.Waf.UnitTesting.Wpf For unit testing of WPF applications waf.testing
System.Waf.UnitTesting.Core For unit testing of all .NET based applications

Sample Applications

Name Type Description Links
Jbe NewsReader UWP A simple and fast RSS and ATOM news feed reader.
  • Architecture: Layering, MVVM, Async patterns
  • Sync feeds with multiple devices via OneDrive
  • WebAccount authentication and End-to-End encryption
  • Responsive UI with Navigation pane
  • Integrated Web Browser view
  • Support for light and dark Theme
  • Localized (English and German)
Windows Store
Waf Writer WPF A simplified word processing application.
  • Architecture: Layering, MVVM
  • 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)
Doc
Waf Book Library WPF Supports the user to manage his 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
Doc
Waf Information Manager WPF 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
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, ClickOnce
Waf DotNetPad WPF Code editor to program with C# or Visual Basic.
.NET Compiler Platform, Roslyn, AvalonEdit, Auto completion, Async/await, ClickOnce
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