_Sql

_Lovers

_Application

_Framework

"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.

📦 Alpha Release Available

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

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 bulk operation workflows 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

🎯 The Core Concept

Instead of writing validation code in C#, design proper staging 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 ZZ_SlappFramework.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

🔧 Technology Stack

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

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

Distribution: NuGet project template

⚠️ This is an alpha/preview release. SlappFramework is functional and ready for evaluation, but may have rough edges.

Feedback and bug reports are welcome!
https://github.com/ChrisHamiltonSystems/SlappFramework-Feedback/issues

© Chris Hamilton. All Rights Reserved.