FoundationKitComposable .NET Application Foundation
Core vNext · Phase 12
ARCHITECTURE · CLEAN BOUNDARIES

Reusable Core.
Product-owned reality.

FoundationKit shares contracts and implementation primitives without owning each product’s database, migrations, credentials, deployment, business semantics or authorization policy.

DEPENDENCY DIRECTION

Five explicit layers.

01
Domain

Entities, aggregate roots, value objects, domain events and exceptions. No framework dependency.

02
Application

Results, validation, repositories/specifications, UoW, capability composition, modules, generic CRUD orchestration and reliability contracts.

03
Infrastructure

Provider-neutral EF adapters, relational idempotency, domain-event dispatch and model-composition helpers.

04
WebApi

Problem Details, correlation, generic endpoints, request-pipeline helpers, concurrency/idempotency and runtime contract metadata.

05
Blazor

Typed API/error presentation state plus the reusable Soft Orbit design system, without server persistence ownership.

Boundary rules

Lower layers do not depend upward

Convenience never overrides dependency direction.

Products own provider choices

Core does not silently choose deployment databases for every consumer.

Writes stay on entities/tables

Commands mutate authoritative write models.

Complex reads use SQL views

Multi-table/report reads are explicit read models rather than browser joins.

Authorization is server-authoritative

UI visibility is presentation, not a security boundary.

Generation fails closed

Unsupported shapes are rejected instead of silently generating ambiguous code.

End-to-end contract chain

01ManifestProject intent
02GeneratorDeterministic output
03RuntimeSQL + API
04OpenAPITransport SSOT
05Typed ClientGenerated C#
06BlazorShared UI

Isolation is architectural, not cosmetic

FoundationKit supports many products from one reusable baseline while runtime state remains product-owned. No cross-project data, provider configuration, migrations, secrets or product roles should bleed into another generated system.

Host-owned runtime stateProject-owned migrationsCore-owned reusable contracts