Bit.Borm 11.0.0-pre-10

This is a prerelease version of Bit.Borm.
dotnet add package Bit.Borm --version 11.0.0-pre-10
                    
NuGet\Install-Package Bit.Borm -Version 11.0.0-pre-10
                    
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="Bit.Borm" Version="11.0.0-pre-10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bit.Borm" Version="11.0.0-pre-10" />
                    
Directory.Packages.props
<PackageReference Include="Bit.Borm" />
                    
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 Bit.Borm --version 11.0.0-pre-10
                    
#r "nuget: Bit.Borm, 11.0.0-pre-10"
                    
#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 Bit.Borm@11.0.0-pre-10
                    
#: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=Bit.Borm&version=11.0.0-pre-10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Bit.Borm&version=11.0.0-pre-10&prerelease
                    
Install as a Cake Tool

Bit.Borm

A schema-driven form engine for Blazor. Describe a form once - from a C# type, with a fluent builder or as a JSON Schema document - and Borm renders it, validates it and keeps its state. Every decision is made in C#; the renderers are plain, accessible HTML with a pluggable renderer registry, and there is no JavaScript at all.

Quick start

dotnet add package Bit.Borm
@* _Imports.razor *@
@using Bit.Borm

Register the rendering services in every container that renders a form (both the server and the client of a Blazor Web App), and link the stylesheet from your host page (App.razor or index.html); it is not injected for you.

builder.Services.AddBorm();
<link rel="stylesheet" href="_content/Bit.Borm/bit-borm.css" />
<BormView Definition="_definition" Model="_model" OnValidSubmit="Save" />

@code {
    private readonly Contact _model = new();

    // Or BormSchemaGenerator.Generate<Contact>() to read the model's DataAnnotations,
    // or BormJsonSchemaImporter.Import(json) to render a JSON Schema document.
    private readonly BormDefinition _definition = BormBuilder.For<Contact>()
        .Title("Contact us")
        .Field(x => x.Name, f => f.Required().Placeholder("Your name"))
        .Field(x => x.Email, f => f.AsEmail().Required().Trim())
        .Field(x => x.Company, f => f
            .VisibleWhen(nameof(Contact.IsBusiness), BormConditionOperator.IsTrue)
            .RequiredWhen(nameof(Contact.IsBusiness), BormConditionOperator.IsTrue)
            .ClearOnHide())
        .Build();

    private Task Save(BormState state) => Task.CompletedTask; // _model is populated and valid here
}

Features

  • Schemas from a C# type and its DataAnnotations, from a strongly typed fluent builder, or from a JSON Schema document (draft-07 to 2020-12, with $ref, allOf, if/then/else) - and export back to JSON Schema.
  • Text, number, select, combobox, multi-select, radio, checkbox, switch, date and time, range, colour, file, tags, static headings, nested objects and repeating arrays.
  • Built-in, custom, async, cross-field and form-level rules, IValidatableObject, and FluentValidation through the Bit.Borm.FluentValidation package.
  • Validation on submit, blur or change; dependent revalidation; superseded and cancelled async rules.
  • Conditional visibility, requiredness, disabled and read-only state - per row inside a repeater - for fields and wizard steps.
  • Computed values, async and cascading options, change handlers and value normalisation.
  • Multi-step wizards with per-step validation and a clickable stepper.
  • Dirty and touched tracking, snapshots, resets and server errors.
  • Labels, aria-* wiring, focus management, live announcements and an error summary out of the box.
  • Theming through --bit-borm-* CSS custom properties, with light, dark and system colour modes, and every built-in string localizable through IBormMessageProvider.
  • Blazor WebAssembly, Server, Web App (including prerendering) and Hybrid on .NET 8, 9 and 10.

For AI agents

The demo site hosts an MCP server at https://borm.bitplatform.dev/mcp (also served through https://bitplatform.dev/mcp) that answers from the shipped library: its API, its guide, its theme properties and the demo's working forms, and it can inspect a JSON Schema document you hand it.

Documentation

The full guide - schemas from C# types, the fluent builder, JSON Schema, validation, conditions and wizards, options, computed values, layout, custom renderers, theming, accessibility, localization and hosting models - is in the Borm README. See it running at borm.bitplatform.dev.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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 is compatible.  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.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Bit.Borm:

Package Downloads
Bit.Borm.FluentValidation

FluentValidation integration for Bit.Borm. UseFluentValidation() runs a model's FluentValidation validator alongside the schema's own rules and puts every failure on the field its property path names.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
11.0.0-pre-10 0 10/20/2026