DynamicFormBuilder.Domain 1.0.0

dotnet add package DynamicFormBuilder.Domain --version 1.0.0
                    
NuGet\Install-Package DynamicFormBuilder.Domain -Version 1.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="DynamicFormBuilder.Domain" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DynamicFormBuilder.Domain" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="DynamicFormBuilder.Domain" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DynamicFormBuilder.Domain --version 1.0.0
                    
#r "nuget: DynamicFormBuilder.Domain, 1.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.
#:package DynamicFormBuilder.Domain@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DynamicFormBuilder.Domain&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=DynamicFormBuilder.Domain&version=1.0.0
                    
Install as a Cake Tool

Dynamic Form Builder Package

A flexible and powerful .NET 9 package for building dynamic forms with rich validation and customization options.

Features

  • Create and manage dynamic forms with various question types
  • Support for multiple question types:
    • Text (single-line and multi-line)
    • DateTime (with optional time component)
    • Single Choice (dropdown or radio buttons)
    • Multiple Choice (checkboxes)
  • Built-in validation framework
  • Form submissions storage and retrieval
  • Clean Architecture design
  • Full UI components for form design and rendering
  • API-first approach with Swagger documentation

Architecture

The solution follows Clean Architecture principles with the following projects:

  • DynamicFormBuilder.Domain: Core entities and business rules
  • DynamicFormBuilder.Application: Use cases, interfaces, and application logic
  • DynamicFormBuilder.Infrastructure: Data persistence and external integrations
  • DynamicFormBuilder.UI: Razor components for form rendering
  • DynamicFormBuilder.Api: RESTful API endpoints

Prerequisites

  • .NET 9.0 SDK
  • SQL Server (can be run using Docker)
  • Visual Studio 2022+ or Visual Studio Code

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/form-builder-package.git
cd form-builder-package
  1. Restore dependencies:
dotnet restore
  1. Update database connection string in appsettings.json:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=FormBuilder;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}
  1. Apply database migrations:
cd DynamicFormBuilder.Api
dotnet ef database update

Usage

API Integration

  1. Add package references to your project:
<PackageReference Include="DynamicFormBuilder.Core" Version="1.0.0" />
<PackageReference Include="DynamicFormBuilder.EntityFrameworkCore" Version="1.0.0" />
  1. Register services in your Program.cs:
services.AddDynamicFormBuilder(options => {
    options.UseConnectionString("DefaultConnection");
    options.UsePermissions(PermissionScheme.Simple);
});

UI Integration

  1. Add the UI package:
<PackageReference Include="DynamicFormBuilder.UI" Version="1.0.0" />
  1. Use the components in your Razor pages:
<DynamicFormDesigner FormId="@formId" />
<DynamicFormRenderer FormId="@formId" />

API Documentation

The API is documented using Swagger/OpenAPI. When running in development mode, access the Swagger UI at:

https://localhost:5001/swagger

Testing

The solution includes comprehensive tests:

dotnet test

Includes:

  • Unit tests for domain logic
  • Integration tests for repositories
  • End-to-end API tests
  • UI component tests

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

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.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 147 5/6/2025