_Sql

_Lovers

_Application

_Framework

SQL-first .NET framework for building internal bulk data management applications on SQL Server

Quick Start (3 Steps)

1. Install the template:

dotnet new install SlappFramework.Template

2. Create your project:

dotnet new slappframework -n MyDataApp

3. Configure and scaffold:

  • Update appsettings.json with your SQL Server connection
  • Execute SqlScripts/CreateBulkOpsInfrastructure.sql
  • Run EXEC ZZ_SlappFramework.ScaffoldAn_INSERT_Feature @DomainTableName='Products'

That's it! Run your app and features appear in the menu automatically.

✨ What You Get

Six data operations scaffolded out-of-the-box:

  • insertViaForm - Single-record form entry
  • insertViaExcel - Download template → Edit offline → Upload
  • insertViaHandsontable - Excel-like grid editing (inline)
  • updateViaForm - Edit single records
  • updateViaExcel - Select rows → Download → Edit → Upload
  • updateViaHandsontable - Bulk edit in grid

All workflows include:

  • Automatic constraint validation (your staging table = your validator)
  • Foreign key dropdown support
  • Rich error messages
  • Transaction-based processing
  • Excel import/export with FK dropdown sheets

"Data as valid as your staging table, GUARANTEED!"

SlappFramework is a constraint-driven, SQL-centric web framework for building bulk data management interfaces. Your database constraints are your validators - no validation code needed.

📦 First Release Available

SlappFramework is now available as a .NET project template! Install it and start building data management apps in minutes.

🎯 The Core Concept

  • Bulk data operations should be first-class citizens. Importing via Excel should be supported as well as entering data via a web form, for example.
  • Data constraints/validation rules should not have to be duplicated, ANYWHERE!

Instead of writing validation code in C# and/or js, design proper table constraints once. SlappFramework bulk-copies your data to staging tables, SQL Server enforces constraints, and the framework collects detailed error messages. Only valid data proceeds to your domain tables.

CREATE TABLE dbo.Products (
    ProductName NVARCHAR(100) NOT NULL,
    Price DECIMAL(10,2) CHECK (Price > 0),
    CategoryID INT NOT NULL
        FOREIGN KEY REFERENCES dbo.Categories(CategoryID),
    -- Scaffolding generates a staging table to enforce ALL of this automatically
)

Result: Zero validation code. Data as valid as your staging table. Guaranteed.

🏗️ Built For

  • SQL Lovers - Developers who prefer SQL programming and want to leverage database capabilities fully
  • Enterprise Apps - Internal business applications requiring bulk data management
  • Rapid Development - Teams wanting to avoid months of grid/Excel integration work
  • Constraint-Driven Design - Projects where the database schema is the source of truth

💡 Commercial Licensing: SlappFramework uses Handsontable and EPPlus, which require commercial licenses for production use (~$1,200-1,400/developer/year). View full licensing details →

🔧 Technology Stack

Backend: .NET 8.0, C# 12, SQL Server 2019+, Dapper, SqlBulkCopy, EPPlus, CSVHelper

Frontend: ASP.NET Core, Bootstrap 5, Handsontable, AG-Grid, Select2

Distribution: NuGet project template

🚀 What's Coming in V2

V2 is currently in development. The core concept — constraint-driven bulk operations, SQL-first feature building — doesn't change. What changes is how the framework is delivered and what it ships with by default.

MIT Licensing Throughout

V1 depends on Handsontable and EPPlus, which require commercial licenses for production use. V2 replaces Handsontable with AG Grid Community (MIT licensed) and targets a fully open-source dependency stack. No per-developer licensing costs.

A Real NuGet Package — Not a Frozen Template

V1 ships as a project template: running dotnet new slappframework drops a full copy of all framework source into your repository. From that moment, you own and maintain code you didn't write, and framework updates never reach your project. V2 ships as SlappFramework.Core — a NuGet package you depend on. Framework improvements reach your project through dotnet package update, like any other dependency.

The slapp CLI

Scaffolding moves to a dedicated command-line tool: slapp scaffold insert --table Products, slapp setup, slapp check. Commands are designed to be invoked naturally by an AI coding agent — making the framework accessible to SQL professionals who can describe what they want in plain language and have an agent execute it correctly.

Security and Observability Baked In

V2 ships with role-based access control enforced from the first request — no configuration required to enable it, and no way to disable it. It also ships with built-in request logging to your existing SQL Server database: who used what feature, when, and whether it succeeded. No Application Insights subscription. No external logging service. No extra infrastructure.

🔗 From the Same Author

SqlXL — Excel imports and exports for SQL Server professionals

SqlXL is a standalone .NET CLI tool for bulk inserting and updating SQL Server data from Excel — no web server, no end users, just you and your database. It uses the same constraint-driven validation approach and the same BulkOpFeatures schema conventions as SlappFramework, so the two tools speak the same language.

If you need the standalone path — bulk operations without a deployed web app — SqlXL is the right tool. runsqlxl.com →

© Chris Hamilton. All Rights Reserved. | Licenses & Attribution