This is 'my' canonical example for a WPF solution based on an MMVM approach using IoC, logging, and asynchronous invocations. All external
Built with .NET 6.0 and all the lovely syntatic-sugar available!
Thrid party libraries are resolved using NuGet.
The idea is to prevent me from re-creating the scaffolding\infrastructure for any future WPF apps, the following are included:
MVVM - implmented as ViewModel first approach using strongly typed XAML DataTemplates,
IoC - implmented using Autofac, all services and key (major) ViewModels are resolved via the IoC container,
Logging - implemented using NLog, writes to file currently in the '%TEMP_FOLDER%\Simple.Wpf.Template' directory,
Async Support - implemented using Reactive Extensions & TPL (async / await),
Modules & Module Loader - allows clean setup & configuration, see App.cs,
Duration - a service for measuring the time for a block of code (Debug mode only),
Gestures - a service for changing the system gestures (mouse) during the application, designed to be used with MVVM,
Event Aggregator - a service for publishing / subscribing to application events using Rx syntax,
Notifications - a service for showing Windows toast notifications,