Skip to content

Latest commit

 

History

History
61 lines (40 loc) · 3.27 KB

File metadata and controls

61 lines (40 loc) · 3.27 KB
graph LR
    Core["Core"]
    SharedKernel["SharedKernel"]
    Use_Cases["Use Cases"]
    Infrastructure["Infrastructure"]
    Web["Web"]
    Core -- "depends on" --> SharedKernel
    Use_Cases -- "depends on" --> SharedKernel
    Infrastructure -- "depends on" --> SharedKernel
    Web -- "depends on" --> SharedKernel
    Use_Cases -- "depends on" --> Core
    Web -- "invokes" --> Use_Cases
    Use_Cases -- "defines interfaces for" --> Infrastructure
    Infrastructure -- "implements interfaces from" --> Core
    Infrastructure -- "implements interfaces from" --> Use_Cases
    Web -- "configures" --> Infrastructure
    click Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/CleanArchitecture/Core.md" "Details"
    click SharedKernel href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/CleanArchitecture/SharedKernel.md" "Details"
    click Web href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/CleanArchitecture/Web.md" "Details"
Loading

CodeBoardingDemoContact

Details

Abstract Components Overview

The innermost layer, encapsulating the domain model, core business entities, value objects, domain events, and business rules. It defines interfaces (ports) for external concerns but has no dependencies on outer layers, ensuring business logic remains independent of infrastructure details.

Related Classes/Methods: None

SharedKernel [Expand]

A cross-cutting component containing common elements, utilities, base entities, and value objects shared across multiple layers or bounded contexts to ensure consistency and avoid code duplication. It provides foundational types and helpers used throughout the application.

Related Classes/Methods: None

Use Cases

Defines application-specific logic, orchestrates interactions between the UI and the domain, and manages application workflows. It contains commands, queries, and handlers (leveraging MediatR), defining the application's use cases. It depends only on the Core and SharedKernel projects.

Related Classes/Methods: None

Infrastructure

Implements interfaces defined in the Core and Use Cases layers for external concerns such as data persistence (Entity Framework Core), external services, and third-party integrations. It handles concrete implementations of repositories, database contexts, and other external dependencies.

Related Classes/Methods: None

The entry point of the application, typically an ASP.NET Core project. It handles HTTP requests, authentication, authorization, and presentation logic. It orchestrates the application by invoking use cases from the Use Cases layer and configuring infrastructure services through dependency injection.

Related Classes/Methods: None