Skip to content

Overview

This lists the feature documentation pages in docs/features-*.md plus the shared building-block and contributor guides that support them. If you are new to the kit, a good starting path is Domain -> Results -> Requester and Notifier -> Modules -> Presentation Endpoints.

Common Infrastructure

  • Common Extensions: Reuse a broad set of shared helper extensions for composition, collections, async flows and more.
  • Common Utilities: Collect low-level utility building blocks for resiliency, activity helpers, ids, hashing, cloning and more.
  • Common Serialization: Share consistent serializer abstractions and JSON conventions across the devkit.
  • Common Options Builders: Use a lightweight fluent builder convention for feature-specific configuration objects.
  • Common Mapping: Keep boundary mapping explicit and testable through a small mapper abstraction with Mapster integration.
  • Common Caching: Provide a small, shared in-process caching abstraction with a default memory-cache implementation.
  • Common Observability Tracing: Add lightweight Activity-based tracing around services without pulling in a full observability framework.

Core Domain and Application

  • Domain: Build domain models with the core tactical patterns of DDD, from aggregates to typed ids and value objects.
  • Domain Events: Capture business-significant events in aggregates and publish side effects outside the domain model.
  • Event Sourcing: Persist aggregates as immutable event streams and rebuild state through replay and snapshots.
  • Domain Repositories: Access aggregates through type-safe repositories with rich querying, paging and loading options.
  • Domain Specifications: Model reusable business criteria as composable specifications for queries and in-memory evaluation.
  • ActiveEntity: Combine entity-centric CRUD convenience with provider-based persistence and Result-driven outcomes.
  • Domain Policies: Encapsulate domain decisions as reusable, context-aware policy objects.
  • Rules: Express business rules as composable validations with consistent Result-based outcomes.
  • Results: Represent success, failure, messages and errors explicitly with immutable Result types.
  • Application Commands and Queries: Separate application writes and reads into focused handlers with shared behaviors and clear boundaries.
  • Application Events: Publish and handle application-layer events through INotifier with explicit Result-based outcomes.
  • DataPorter: Import and export structured data through a flexible, format-agnostic data transfer framework.

Execution, Messaging and Modularity

  • Requester and Notifier: Dispatch requests and notifications through handler pipelines with reusable cross-cutting behaviors.
  • Messaging: Decouple producers and consumers with resilient asynchronous messaging and outbox-backed delivery.
  • Queueing: Process single-consumer work items through in-process or durable queue brokers with retained-message inspection, retry/archive controls and queue/type pause-resume management.
  • Notifications: Send and queue application notifications through transport-agnostic contracts with clear delivery boundaries.
  • Modules: Structure modular monoliths as independently configurable feature modules within one host.
  • Pipelines: Build structured, observable multi-step workflows with low-friction defaults.
  • Filtering: Simplify complex entity queries with a unified filtering solution.
  • Extensions: Use focused LINQ and helper extensions to write cleaner, more expressive application code.

Security and Access

  • Entity Permissions: Enforce fine-grained, entity-level authorization with fluent configuration and runtime evaluation.
  • Fake Identity Provider: Documents the lightweight development identity provider for OAuth2 and OpenID Connect flows, JWT issuance and test users and clients.

Presentation and Host

  • Presentation Endpoints: Define minimal API endpoints as modular classes with automatic discovery and mapping.
  • Console Commands: Expose operational and administrative actions through discoverable console commands and an interactive shell.
  • CORS Configuration: Configure browser cross-origin access through fluent, settings-driven CORS policies.
  • Exception Handling: Convert exceptions into consistent Problem Details responses with configurable handlers and mappings.
  • AppState: Manage Blazor application state with persistence, history and change notifications.

Storage, Scheduling and Utilities

  • StartupTasks: Run application startup work in a structured, observable and dependency-aware way.
  • JobScheduling: Schedule and run background jobs with flexible timing, DI integration and operational visibility.
  • DocumentStorage: Store and query JSON-like documents through a simple, provider-agnostic abstraction.
  • FileStorage: Read, write, move and monitor files through extensible storage providers and behaviors.
  • Storage Monitoring: Detect file changes and process storage events through configurable monitoring pipelines.
  • Log Entries: Query, stream, export and manage persisted application logs through a stable application API.

Testing and Test Utilities