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
Resulttypes. - 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
INotifierwith explicitResult-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¶
- Fake Authentication for Integration Tests: Simulate authenticated ASP.NET Core requests in integration tests with a lightweight fake-auth scheme.
- Testing Common XUnit: Reuse shared xUnit test helpers for setup, web hosts, fake time, traits and
Resultassertions.