Welcome to the comprehensive documentation for the DKNet Framework - a powerful collection of .NET libraries designed to enhance and simplify enterprise application development using Domain-Driven Design (DDD) principles and Onion Architecture patterns.
- Getting Started Guide - Installation, setup, and first steps
- Configuration & Setup - Detailed configuration options
- Architecture Guide - Understanding DDD and Onion Architecture
- API Reference - Complete API documentation
- Examples & Recipes - Practical implementation examples
- FAQ - Frequently asked questions and troubleshooting
- Changelog - Version history and release notes
- Migration Guide - Upgrading between versions
- Contributing Guide - How to contribute to the project
- Testing Strategy - Testing approach and coverage goals
- Security Policy - Security practices and reporting
This documentation is organized by functional areas to help you understand how each component contributes to the overall architecture:
π§ Core Framework
Foundation utilities and extensions that support all other components.
- DKNet.Fw.Extensions - Framework-level extensions and utilities
ποΈ Entity Framework Core Extensions
Comprehensive EF Core enhancements that implement repository patterns, domain events, and data access abstractions.
- DKNet.EfCore.Abstractions - Core abstractions and interfaces
- DKNet.EfCore.DataAuthorization - Data authorization and access control
- DKNet.EfCore.Events - Domain event handling and dispatching
- DKNet.EfCore.Extensions - EF Core functionality enhancements
- DKNet.EfCore.Hooks - Lifecycle hooks for EF Core operations
- DKNet.EfCore.Relational.Helpers - Relational database utilities
- DKNet.EfCore.Repos - Repository pattern implementations
- DKNet.EfCore.Repos.Abstractions - Repository abstractions
π¨ Messaging & CQRS
SlimMessageBus integration for implementing CQRS patterns and event-driven architecture.
- DKNet.SlimBus.Extensions - SlimMessageBus extensions for EF Core
π§ Service Layer
Application services including blob storage abstractions and data transformation utilities.
- DKNet.Svc.BlobStorage.Abstractions - File storage service abstractions
- DKNet.Svc.BlobStorage.AwsS3 - AWS S3 storage adapter
- DKNet.Svc.BlobStorage.AzureStorage - Azure Blob storage adapter
- DKNet.Svc.BlobStorage.Local - Local file system storage
- DKNet.Svc.Transformation - Data transformation services
- DKNet.Svc.PdfGenerators - Documentation-grade PDF generation toolkit
- DKNet.Svc.Encryption - Cryptographic helpers (AES, RSA, HMAC, hashing)
βοΈ Aspire Integrations
Infrastructure orchestration helpers for .NET Aspire AppHost projects.
- Aspire.Hosting.ServiceBus - Azure Service Bus resource builder extensions
βοΈ ASP.NET Core Utilities
Startup orchestration utilities for web/API workloads.
- DKNet.AspCore.Tasks - Application start-up background job orchestration
The DKNet Framework is built around Domain-Driven Design (DDD) principles and implements the Onion Architecture pattern. Each component is designed to support specific layers of this architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Presentation Layer β
β (API Controllers, UI) β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββ
β π― Application Layer β
β (Application Services, CQRS Handlers) β
β β
β π¨ DKNet.SlimBus.Extensions β
β π§ DKNet.Svc.* (Services) β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββ
β πΌ Domain Layer β
β (Entities, Aggregates, Domain Events) β
β β
β ποΈ Core business logic and rules β
β π Domain Events via DKNet.EfCore.Events β
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββ
β ποΈ Infrastructure Layer β
β (Data Access, External Services, Persistence) β
β β
β ποΈ DKNet.EfCore.* (Repository patterns, Data access) β
β π DKNet.EfCore.DataAuthorization β
β βοΈ DKNet.Fw.Extensions (Cross-cutting concerns) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Dependency Inversion: Inner layers don't depend on outer layers
- Separation of Concerns: Each component has a single, well-defined responsibility
- Domain-Centricity: Business logic is isolated in the domain layer
- Event-Driven Architecture: Domain events enable loose coupling between bounded contexts
- Repository Pattern: Abstracts data access and enables testability
To get started with the DKNet Framework:
- Choose Your Components: Review the documentation for each component to understand which ones fit your needs
- Review Architecture Patterns: Understand how each component fits into the DDD/Onion architecture
- Follow Implementation Guides: Each component includes detailed usage examples and best practices
- Explore Templates: Check out the SlimBus.ApiEndpoints template for a complete reference implementation
We welcome contributions to improve this documentation! If you find areas that need clarification or have suggestions for additional content, please:
- Open an issue describing the documentation improvement needed
- Submit a pull request with your proposed changes
- Follow the existing documentation structure and style
π‘ Tip: This documentation is designed to be published as GitHub Pages were generated by the 'copilot' 100%. If any feedback please raise an issue in the DKNet repository. Each section provides comprehensive guidance on implementing DDD and Onion Architecture patterns using the DKNet Framework components.
