Skip to content

.NET CRUD generator library with Bootstrap support to create dynamic forms at runtime from a data dictionary.

License

Notifications You must be signed in to change notification settings

JJConsulting/JJMasterData

Folders and files

NameName
Last commit message
Last commit date
Feb 10, 2025
Apr 15, 2025
Nov 18, 2024
Apr 29, 2025
Apr 4, 2025
Dec 5, 2024
Apr 5, 2024
Sep 12, 2022
Sep 12, 2022
Sep 12, 2022
Sep 12, 2022
Apr 29, 2025
Apr 20, 2023
Oct 15, 2024
Aug 8, 2023
Sep 12, 2022
Feb 23, 2024
Apr 15, 2025
Jan 5, 2024
Feb 26, 2024
Dec 4, 2023


..NET 8 TS TS NuGet Discord

JJMasterData is an open-source .NET library to help you create dynamic CRUDs quickly from data dictionaries (database metadata), along with other boilerplate-intensive things like exporting and importing data.

Useful Links

What is a Data Dictionary?

Learn more in this blog article about the concept on which JJMasterData works.

Features

  • Components generated at runtime 🔥
  • Data exportation & importation ↔️
  • Database script generation ✍️
  • Plugins support by interfaces 🪄
  • Multiple forms using relationships⛓️

Getting Started

Setup-JJMasterData.mp4
  1. Create an ASP.NET Core project (it can be Blazor, MVC, Razor Pages, whetever you like...)
  2. Install JJMasterData.Web
dotnet add package JJMasterData.Web
  1. Configure your IConfiguration source with a connection string at JJMasterData:ConnectionString and a secret key at JJMasterData:SecretKey
{
  "JJMasterData": {
    "DataDictionaryTableName": "MasterData",
    "ConnectionString": "Server=localhost;Database=JJMasterData;Integrated Security=True;Trust Server Certificate=true",
    "ReadProcedurePattern": "{tablename}Get",
    "WriteProcedurePattern": "{tablename}Set",
    "SecretKey": "ExampleSecretKey"
  }
}
  1. At Program.cs add the following lines:
using JJMasterData.Web.Configuration;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddJJMasterDataWeb();

///...

var app = builder.Build();

///...

//Required middlewares
app.UseStaticFiles();
app.UseSession(); //Session is very important

app.MapDataDictionary();
app.MapMasterData();

await app.UseMasterDataSeedingAsync();

app.Run();
  1. Create a wwwroot folder if your project is empty
  2. Run the project and visit /DataDictionary/Element/Index
image

You can get the appsettings.json schema URL from here

See all steps in documentation.


Building from source 🧰

  1. Install .NET 8

  2. Install NodeJS

  3. Clone this git repository

  4. Open JJMasterData.sln file at your IDE

  5. Set the WebEntryPoint as startup project

  6. At src/Web run at your terminal

npm i
  1. Run the project

Special Thanks

Code contributors


Alt

Bugs and feature requests 🐛

Have a bug or a feature request? Please first search for existing and closed issues.
If your problem or idea is not addressed yet, please open a new issue.