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.
Learn more in this blog article about the concept on which JJMasterData works.
- Components generated at runtime 🔥
- Data exportation & importation ↔️ 
- Database script generation ✍️
- Plugins support by interfaces 🪄
- Multiple forms using relationships⛓️
Setup-JJMasterData.mp4
- Create an ASP.NET Core project (it can be Blazor, MVC, Razor Pages, whetever you like...)
- Install JJMasterData.Web
dotnet add package JJMasterData.Web- Configure your IConfigurationsource with a connection string atJJMasterData:ConnectionStringand a secret key atJJMasterData:SecretKey
{
  "JJMasterData": {
    "DataDictionaryTableName": "MasterData",
    "ConnectionString": "Server=localhost;Database=JJMasterData;Integrated Security=True;Trust Server Certificate=true",
    "ReadProcedurePattern": "{tablename}Get",
    "WriteProcedurePattern": "{tablename}Set",
    "SecretKey": "ExampleSecretKey"
  }
}- At Program.csadd 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();
- Create a wwwrootfolder if your project is empty
- Run the project and visit /DataDictionary/Element/Index
 
You can get the appsettings.json schema URL from here
See all steps in documentation.
- 
Install .NET 8 
- 
Install NodeJS 
- 
Clone this git repository 
- 
Open JJMasterData.slnfile at your IDE
- 
Set the WebEntryPointas startup project
- 
At src/Webrun at your terminal
npm i- Run the project
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.
