HopFrame.Core 3.0.0

dotnet add package HopFrame.Core --version 3.0.0                
NuGet\Install-Package HopFrame.Core -Version 3.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HopFrame.Core" Version="3.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HopFrame.Core --version 3.0.0                
#r "nuget: HopFrame.Core, 3.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install HopFrame.Core as a Cake Addin
#addin nuget:?package=HopFrame.Core&version=3.0.0

// Install HopFrame.Core as a Cake Tool
#tool nuget:?package=HopFrame.Core&version=3.0.0                

HopFrame

Overview

Welcome to the HopFrame! This project aims to provide a comprehensive and modular framework for easy management of your database. The framework is designed to be highly configurable, ensuring that developers either quickly add the framework for simple data editing or configure it to their needs to implement it fully in their data management pipeline.

Features

  • Dynamic Table Management: Create, edit, and delete records dynamically with support for various data types including numeric, text, boolean, dates, and relational data.
  • Role-Based Access Control (RBAC): Implement fine-grained access control policies for viewing, creating, updating, and deleting records.
  • Modern Design: A modern and user-friendly interface built with Fluent UI components, ensuring easy to use and pleasing administration pages.
  • Validation and Error Handling: Comprehensive input validation and error handling to ensure data integrity and provide feedback to users.
  • Support for Complex Data Relationships: Manage complex relationships between data entities with ease.

Getting Started

Configuration

Configuring HopFrame is straightforward and flexible. You can easily define your contexts, tables, and their properties using the provided configurators. Simply use your editors intelli-sense to find out what you can configure.

builder.Services.AddHopFrame(options => {
    options.DisplayUserInfo(false);
    options.AddDbContext<DatabaseContext>(context => {
        context.Table<User>(table => {
            table.Property(u => u.Password)
                .DisplayValue(false);

            table.Property(u => u.FirstName)
                .List(false);

            table.Property(u => u.LastName)
                .List(false);

            table.Property(u => u.Id)
                .IsSortable(false)
                .SetOrderIndex(3);

            table.AddVirtualProperty("Name", (user, _) => $"{user.FirstName} {user.LastName}")
                .SetOrderIndex(2);

            table.SetDisplayName("Clients");
            table.SetDescription("This table is used for user data store and user authentication");

            table.SetViewPolicy("users.view");

            table.Property(u => u.Posts)
                .FormatEach<Post>((post, _) => post.Caption);
        });

        context.Table<Post>()
            .Property(p => p.Content)
            .IsTextArea(true)
            .Validator(input => {
                var errors = new List<string>();
                
                if (input is null)
                    errors.Add("Value cannot be null");
                
                if (input?.Length > 10)
                    errors.Add("Value can only be 10 characters long");

                return errors;
            });

        context.Table<Post>()
            .SetOrderIndex(-1);
    });
});

Usage

  • Navigate to /admin to access the admin dashboard and start managing your tables.
  • Use the side menu to switch between different tables.
  • Utilize the built-in CRUD functionality to manage your data seamlessly.

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request if you have suggestions or improvements.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on HopFrame.Core:

Package Downloads
HopFrame.Web

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0 103 1/19/2025