Schemata.Mapping.Foundation
10.0.0-preview.26305.37
dotnet add package Schemata.Mapping.Foundation --version 10.0.0-preview.26305.37
NuGet\Install-Package Schemata.Mapping.Foundation -Version 10.0.0-preview.26305.37
<PackageReference Include="Schemata.Mapping.Foundation" Version="10.0.0-preview.26305.37" />
<PackageVersion Include="Schemata.Mapping.Foundation" Version="10.0.0-preview.26305.37" />
<PackageReference Include="Schemata.Mapping.Foundation" />
paket add Schemata.Mapping.Foundation --version 10.0.0-preview.26305.37
#r "nuget: Schemata.Mapping.Foundation, 10.0.0-preview.26305.37"
#:package Schemata.Mapping.Foundation@10.0.0-preview.26305.37
#addin nuget:?package=Schemata.Mapping.Foundation&version=10.0.0-preview.26305.37&prerelease
#tool nuget:?package=Schemata.Mapping.Foundation&version=10.0.0-preview.26305.37&prerelease
Schemata
A .NET application framework for building modular, extensible business applications.
Quick Start
dotnet new web
dotnet add package --prerelease Schemata.Application.Complex.Targets
var builder = WebApplication.CreateBuilder(args)
.UseSchemata(schema => {
schema.UseLogging();
schema.UseRouting();
schema.UseControllers();
});
var app = builder.Build();
app.Run();
Add more capabilities from the Feature Domains below.
Documentation
- Guides — step-by-step tutorials building a complete application from scratch
- Documents — technical reference for framework internals and all subsystems
- Modeling — SKM language reference for entity code generation
Feature Domains
- Authorization — OAuth 2.0 / OpenID Connect server
- Caching — distributed cache abstraction; Redis and
IDistributedCacheadapters - DSL —
.skmsource generator - Event — in-process / RabbitMQ event bus
- Flow — BPMN process engine, HTTP/gRPC transports, event/scheduling bridges
- Identity — ASP.NET Core Identity integration
- Mapping — unified object-mapper abstraction (AutoMapper / Mapster)
- Modular — module discovery and loading
- Repository — EF Core / LinqToDB providers with advisor pipeline, unit of work, ownership, query caching
- Resource — Google AIP-compliant CRUD service over HTTP and gRPC
- Scheduling — persistent cron / periodic / one-time job scheduler
- Tenancy — multi-tenant resolution and per-tenant DI
- Validation — FluentValidation integration
Features
Features are modular components that can be integrated at startup.
Features are characterized by Order and Priority, both of which are Int32 values. Order controls the sequence of ConfigureServices calls; Priority controls the sequence of ConfigureApplication and ConfigureEndpoints calls.
The range [100_000_000, 900_000_000] for Order and Priority is reserved for built-in features and Schemata extensions.
Built-in Features
A built-in feature can be activated by calling the UseXXX method on the SchemataBuilder instance. These features may also have additional configuration methods.
| Priority | Feature | Description |
|---|---|---|
| 100_000_000 | ForwardedHeaders | ASP.NET Forwarded Headers Middleware |
| 110_000_000 | DeveloperExceptionPage | ASP.NET Developer Exception Page Middleware |
| 120_000_000 | Logging | ASP.NET Logging Middleware |
| 130_000_000 | HttpLogging | ASP.NET HTTP Logging Middleware |
| 140_000_000 | W3CLogging | ASP.NET W3C Logging Middleware |
| 150_000_000 | Https | ASP.NET HTTPS & HTTPS Redirection Middlewares |
| 160_000_000 | Tenancy | Multi-tenant isolation middleware (Order: 900_000_000) |
| 170_000_000 | CookiePolicy | ASP.NET Cookie Policy Middleware |
| 180_000_000 | Routing | ASP.NET Routing Middleware |
| 185_000_000 | WellKnown | /.well-known/* routes (+5M sub-feature of Routing) |
| 190_000_000 | Quota | ASP.NET Rate Limiter Middleware |
| 200_000_000 | Cors | ASP.NET CORS Middleware |
| 210_000_000 | Authentication | ASP.NET Authentication & Authorization Middlewares |
| 220_000_000 | Session | ASP.NET Session Middleware |
| 230_000_000 | Controllers | ASP.NET MVC Middlewares, without Views |
| 240_000_000 | JsonSerializer | Configure System.Text.Json to use snake_case and handle JavaScript's 53-bit integers |
Extension Features
An extension feature can be activated in the same way as a built-in feature.
| Priority | Package | Feature | Description |
|---|---|---|---|
| 400_000_000 | Schemata.Security.Foundation | Security | RBAC/ABAC security policies |
| 410_000_000 | Schemata.Transport.Http | Transport.Http | Shared HTTP plumbing: exception handler, JSON wire-name traits |
| 420_000_000 | Schemata.Transport.Grpc | Transport.Grpc | Shared gRPC plumbing: AddCodeFirstGrpc, interceptor, reflection |
| 430_000_000 | Schemata.Identity.Foundation | Identity | ASP.NET Core Identity integration |
| 440_000_000 | Schemata.Event.Foundation | Event | Pub/sub bus, type registry, publish/consume advisor pipeline |
| 450_000_000 | Schemata.Authorization.Foundation | Authorization | OAuth 2.0 / OpenID Connect server |
| 460_000_000 | Schemata.Mapping.Foundation | Mapping | Unified object mapper abstraction |
| 470_000_000 | Schemata.Scheduling.Foundation | Scheduling | Persistent cron / periodic / one-time job scheduler |
| 470_100_000 | Schemata.Scheduling.Event | Scheduling.Event | Lifecycle event publisher bridging the scheduler to the event bus |
| 480_000_000 | Schemata.Flow.Foundation | Flow | BPMN process engine and state-machine runtime |
| 480_100_000 | Schemata.Flow.Http | Flow (UseFlowHttp) |
ProcessController HTTP surface |
| 480_200_000 | Schemata.Flow.Grpc | Flow (UseFlowGrpc) |
ProcessService gRPC surface |
| 480_300_000 | Schemata.Flow.Event | Flow.Event | Bridges BPMN message/signal catches to the event bus |
| 480_400_000 | Schemata.Flow.Scheduling | Flow.Scheduling | Bridges BPMN timer catches to the scheduler |
| 490_000_000 | Schemata.Resource.Foundation | Resource | Google AIP-compliant resource service |
| 490_100_000 | Schemata.Resource.Http | Resource (MapHttp) |
HTTP/REST endpoint |
| 490_200_000 | Schemata.Resource.Grpc | Resource (MapGrpc) |
gRPC endpoint |
| 520_000_000 | Schemata.Modular | Modular | Module discovery and loading |
Compliance
Schemata targets the latest .NET Long-Term Support (LTS) version and the most recent .NET release. All runtime packages target net8.0;net10.0. Source generators target netstandard2.0 so Roslyn can load them.
| Package | Compliance |
|---|---|
| Schemata.Advice.Generator | |
| Schemata.Modeling.Generator | |
| All other packages |
Schemata.Authorization.Foundation
Schemata Authorization Foundation complies with the OpenID Connect Core 1.0 specification.
Schemata.Identity.Foundation
Schemata Identity Foundation is compatible with ASP.NET Core Identity.
Schemata.Mapping.Foundation
The Schemata Mapping Foundation is compatible with various mapping libraries, including AutoMapper and Mapster, among others.
It provides a unified interface for these libraries, enabling developers to switch between them without modifying application code.
Schemata.Resource.Foundation
The Schemata Resource Foundation complies with the API Improvement Proposals - General AIPs proposals.
Schemata.Flow.Foundation
The default StateMachineEngine in Schemata.Flow.StateMachine runs a subset of BPMN 2.0.2: one start event, at least one end event, plain activities (no SubProcess / CallActivity / loop characteristics), ExclusiveGateway, EventBasedGateway (exclusive mode only), interrupting boundary events, and intermediate catch events reachable from an EventBasedGateway. The full BPMN AST in Schemata.Flow.Skeleton covers more (parallel / inclusive / complex gateways, subprocesses, multi-instance loops) and is intended for alternate engines plugged in via a keyed IFlowRuntime.
Intermediate catch events bridge to runtime infrastructure: Schemata.Flow.Event correlates Message and Signal catches with the event bus, and Schemata.Flow.Scheduling fires Timer catches through the scheduler.
The process graph is built with a strongly-typed C# DSL in Schemata.Flow.Skeleton.Builders (ProcessBuilder, ActivityBehavior, BoundaryCatch, EventBranch, FlowBranch, InclusiveBranch, InclusiveMerge, ParallelFork, ParallelJoin, StartFlow).
| Product | Versions 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 was computed. 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. |
-
net10.0
- Schemata.Core (>= 10.0.0-preview.26305.37)
- Schemata.Mapping.Skeleton (>= 10.0.0-preview.26305.37)
-
net8.0
- Schemata.Core (>= 10.0.0-preview.26305.37)
- Schemata.Mapping.Skeleton (>= 10.0.0-preview.26305.37)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Schemata.Mapping.Foundation:
| Package | Downloads |
|---|---|
|
Schemata.Workflow.Foundation
Schemata Application Framework - Workflow Foundation |
|
|
Schemata.Mapping.Mapster
Schemata Application Framework - Mapper (using Mapster) |
|
|
Schemata.Mapping.AutoMapper
Schemata Application Framework - Mapper (using AutoMapper) |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0-preview.26305.37 | 0 | 6/5/2026 |
| 10.0.0-preview.26305.35 | 0 | 6/5/2026 |
| 10.0.0-preview.26304.21 | 35 | 6/4/2026 |
| 10.0.0-preview.26301.51 | 69 | 6/1/2026 |
| 10.0.0-preview.26264.43 | 66 | 5/14/2026 |
| 10.0.0-preview.26263.11 | 66 | 5/13/2026 |
| 10.0.0-preview.26262.64 | 64 | 5/12/2026 |
| 10.0.0-preview.26259.24 | 73 | 5/9/2026 |
| 10.0.0-preview.26259.20 | 69 | 5/9/2026 |
| 10.0.0-preview.26253.58 | 80 | 5/3/2026 |
| 10.0.0-preview.26253.39 | 63 | 5/3/2026 |
| 10.0.0-preview.26253.37 | 61 | 5/3/2026 |
| 10.0.0-preview.26251.71 | 68 | 5/1/2026 |
| 10.0.0-preview.26177.58 | 74 | 3/27/2026 |
| 10.0.0-preview.26177.40 | 68 | 3/27/2026 |
| 10.0.0-preview.26177.31 | 70 | 3/27/2026 |
| 10.0.0-preview.26175.94 | 66 | 3/25/2026 |
| 10.0.0-preview.26175.59 | 66 | 3/25/2026 |
| 10.0.0-preview.26174.30 | 65 | 3/24/2026 |
| 10.0.0-preview.26174.28 | 68 | 3/24/2026 |