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

About

Beep ViewModels

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors