⚠ Deprecated: Legacy
This package has been renamed to NuExt.Minimal.Mvvm.Wpf. Use that package instead.
Suggested alternative: NuExt.Minimal.Mvvm.Wpf
NuExt.Minimal.Mvvm.Windows is an extension for the lightweight MVVM framework NuExt.Minimal.Mvvm, specifically designed for WPF applications. Commonly Used Types: Minimal.Mvvm.ModelBase Minimal.Mvvm.Windows.ControlViewModel Minimal.Mvvm.Windows.DocumentContentViewModelBase Minimal.Mvvm.Windows.WindowViewModel Minimal.Mvvm.Windows.IAsyncDialogService Minimal.Mvvm.Windows.IAsyncDocument Minimal.Mvvm.Windows.IAsyncDocumentContent Minimal.Mvvm.Windows.IAsyncDocumentManagerService Minimal.Mvvm.Windows.InputDialogService Minimal.Mvvm.Windows.OpenWindowsService Minimal.Mvvm.Windows.SettingsService Minimal.Mvvm.Windows.TabbedDocumentService Minimal.Mvvm.Windows.ViewLocator Minimal.Mvvm.Windows.WindowedDocumentService Minimal.Mvvm.Windows.WindowPlacementService
$ dotnet add package NuExt.Minimal.Mvvm.WindowsNuExt.Minimal.Mvvm.Windows is an extension for the lightweight MVVM framework NuExt.Minimal.Mvvm. This package is specifically designed to enhance development for WPF applications by providing additional components and utilities that simplify development, reduce routine work, and add functionality to your MVVM applications. A key focus of this package is to offer robust support for asynchronous operations, making it easier to manage complex scenarios involving asynchronous tasks and commands.
Minimal.Mvvm.ModelBase: Base class for creating bindable models.Minimal.Mvvm.Windows.ControlViewModel: Base class for control-specific ViewModels and designed for asynchronous disposal.Minimal.Mvvm.Windows.DocumentContentViewModelBase: Base class for ViewModels that represent document content.Minimal.Mvvm.Windows.WindowViewModel: Base class for window-specific ViewModels.Minimal.Mvvm.Windows.IAsyncDialogService: Displays dialog windows asynchronously.Minimal.Mvvm.Windows.IAsyncDocument: Asynchronous document created with IAsyncDocumentManagerService.Minimal.Mvvm.Windows.IAsyncDocumentContent: Asynchronous document content that represent a view model.Minimal.Mvvm.Windows.IAsyncDocumentManagerService: Manages asynchronous documents.Minimal.Mvvm.Windows.InputDialogService: Shows modal dialogs asynchronously.Minimal.Mvvm.Windows.OpenWindowsService: Manages open window ViewModels within the application.Minimal.Mvvm.Windows.SettingsService: Facilitates saving and loading settings.Minimal.Mvvm.Windows.TabbedDocumentServiceMinimal.Mvvm.Windows.ViewLocator: Locates and initializes views based on view models.Minimal.Mvvm.Windows.WindowedDocumentService: Manages windowed documents within a UI.Minimal.Mvvm.Windows.WindowPlacementService: Saves and restores window placement between runs.For an enhanced development experience, we highly recommend using the NuExt.Minimal.Mvvm.SourceGenerator package alongside this framework. It provides a source generator that produces boilerplate code for your ViewModels at compile time, significantly reducing the amount of repetitive coding tasks and allowing you to focus more on the application-specific logic.
You can install NuExt.Minimal.Mvvm.Windows via NuGet:
dotnet add package NuExt.Minimal.Mvvm.Windows
Or through the Visual Studio package manager:
Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution....NuExt.Minimal.Mvvm.Windows.For comprehensive examples of how to use the package, refer to the samples directory in this repository and the NuExt.Minimal.Mvvm.MahApps.Metro repository. These samples illustrate best practices for using these extensions.
Contributions are welcome! Feel free to submit issues, fork the repository, and send pull requests. Your feedback and suggestions for improvement are highly appreciated.
Special thanks to the creators and maintainers of the DevExpress MVVM Framework. The author has been inspired by its advanced features and design philosophy for many years. However, as technology evolves, the DevExpress MVVM Framework has started to resemble more of a legacy framework, falling behind modern asynchronous best practices and contemporary development paradigms. The need for better support for asynchronous programming, greater simplicity, and improved performance led to the creation of these projects.
Licensed under the MIT License. See the LICENSE file for details.