MVVM ViewModel layer for the Beep Data Platform — standardized GUI/UI patterns with CommunityToolkit.Mvvm, 20+ database connection ViewModels, and application workflow ViewModels for .NET 8/9/10.
TheTechIdea.Beep.MVVM provides a standardized ViewModel layer for the Beep Data Platform ecosystem. Built on CommunityToolkit.Mvvm (8.4.2), it offers a BaseViewModel class with state tracking, lifecycle management, and menu/toolbar item support — plus concrete ViewModel implementations for 20+ database connection types and common application workflows.
| Component | Description |
|---|---|
| BaseViewModel | Abstract MVVM base class extending ObservableObject. Provides IsBusy, IsDirty, IsValid state tracking, menu/toolbar/context item collections, and lifecycle methods (LoadViewModel, SaveViewModel, ValidateViewModel). |
| CommunityToolkit.Mvvm | Source-generated MVVM boilerplate: [ObservableProperty], [RelayCommand], and ObservableObject base. |
| INavigateService | Navigation service interface for declarative view routing with parameter passing. |
MainViewModel, LoginViewModel, LogoutViewModel, ResetPasswordViewModel, AccountViewModel, MenuViewModel, NavigationBarViewModel, TreeViewModel, EntityCreatorViewModel, CreateCrudViewViewModel, CreateLocalDBViewModel, ExportViewModel, ImportViewModel, FunctionToFunctionMappingViewModel
RDBMS: SqlServer, MySql, PostgreSql, Oracle, MariaDB, Firebird, DB2, RDBMS
NoSQL: MongoDB, Redis, Cassandra, CouchDB, VectorDB, NOSQL
File & Embedded: SQLite, InMemory, File
Cloud & Specialized: SnowFlake, Cloud, WebAPI, StreamProcessing, DataIntegration, Industrial
DataConnectionViewModel, DataSourcesViewModel, DataSourceDefaultsViewModel, DriversConfigViewModel, DataTypeMappingViewModel, DictionaryQueryForRDBMSViewModel
dotnet add package TheTechIdea.Beep.MVVMusing TheTechIdea.Beep.MVVM;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
public class CustomerViewModel : BaseViewModel
{
[ObservableProperty] private string _customerName;
[ObservableProperty] private ObservableCollection<Customer> _customers;
public override async Task LoadViewModel()
{
IsBusy = true;
Customers = new ObservableCollection<Customer>(
await _customerService.GetAllAsync());
IsBusy = false;
}
[RelayCommand]
public async Task SaveCustomer()
{
IsBusy = true;
await _customerService.SaveAsync(new Customer { Name = CustomerName });
IsDirty = false;
IsBusy = false;
}
}| Package | Version | Purpose |
|---|---|---|
CommunityToolkit.Mvvm |
8.4.2 | MVVM source generators |
TheTechIdea.Beep.DataManagementEngine |
3.0.0 | Data management runtime |
TheTechIdea.Beep.DataManagementModels |
3.0.0 | Core data models |
TheTechIdea.Beep.Vis.Modules |
2.0.43 | Visualization interfaces |
See help/index.html for full HTML documentation.
- .NET 8.0, 9.0, or 10.0
MIT License — see LICENSE.txt