Skip to content

The-Tech-Idea/Beep.ViewModels

Repository files navigation

Beep.ViewModels

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.

NuGet License .NET

Overview

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.

Architecture

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.

ViewModels

Application Workflows

MainViewModel, LoginViewModel, LogoutViewModel, ResetPasswordViewModel, AccountViewModel, MenuViewModel, NavigationBarViewModel, TreeViewModel, EntityCreatorViewModel, CreateCrudViewViewModel, CreateLocalDBViewModel, ExportViewModel, ImportViewModel, FunctionToFunctionMappingViewModel

Database Connections (20+)

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

Configuration

DataConnectionViewModel, DataSourcesViewModel, DataSourceDefaultsViewModel, DriversConfigViewModel, DataTypeMappingViewModel, DictionaryQueryForRDBMSViewModel

Installation

dotnet add package TheTechIdea.Beep.MVVM

Quick Start

using 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;
    }
}

Dependencies

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

Documentation

See help/index.html for full HTML documentation.

Requirements

  • .NET 8.0, 9.0, or 10.0

License

MIT License — see LICENSE.txt

Releases

Packages

Used by

Contributors

Languages