Rezakazemi890 / CleanArchitecture

This repository contains the implementation of domain-driven design and clear architecture in ASP.NET Core.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸƒβ€β™‚οΈ How to Run the Project

  1. First make sure that you have .NET 7.0 and Visual Studio 2022 are installed.
  2. Now open the solution with VS 2022 and build the solution to make sure that there is no error.
  3. Now make CleanHr.Api and ClearHr.Blazor projects as startup projects and then run it. On startup necessary databases will be created in MSSQLLocalDB

Clean Architecture in ASP.NET Core

This repository contains the implementation of Domain Driven Design and Clear Architecture in ASP.NET Core.

βš™οΈ Fetures

  1. Domain Driven Design
  2. CQRS
  3. REST API
  4. API Versioning
  5. Blazor Client (Web Assembly)
  6. Caching with InMemory and Redis
  7. Logging with Serilog
  8. EF Core Repository and Cache Repository
  9. Microsoft SQL Server
  10. Simple and clean admin template for starter

πŸ“ Folder Structures:

image

πŸ“‚ src/ServerApp:

Will contain all the projects of the server side app and will look like as follows: tempsnip

πŸ“‚ src/ServerApp/Core:

Core folder contains the projects related to the application's core funcationalities like Domain Logic and Application Logic. This folder is called the heart of the server app.

tempsnip

πŸ“ EmployeeManagement.Domain Project:

This is application's Domain Layer which will contain:

  1. Domain entities and aggregate roots which will be mapped to database table
  2. Domain logic,
  3. Domain repositories
  4. Value objects.
  5. Domain Exceptions

This will not depend on any other project. This is fully independent.

tempsnip

πŸ“ EmployeeManagement.Application Project:

This is application's Application Layer which will contain:

  1. Appplication Logic
  2. Infrastructure repositories' interfaces i.e Cache Repository interfaces.
  3. Infrastructure services' interfaces i.e IEmailSender, ISmsSender, IExceptionLogger etc.
  4. Data Transfer Objects (Dtos)
  5. Command and Queries

It will only depend on Domain project aka Domain Layer.

tempsnip

πŸ“‚ src/ServerApp/Infrastructure:

This folder will contains all the project related to project's infrastuctures like Data access code, persistance and application's cross cutting concerns' intefaces implementation like IEmailSender, ISmsSender etc.

tempsnip

πŸ“‚ src/ServerApp/Presentation:

This folder will contain the REST API projects which is the PresentationLayer of the project.

tempsnip

About

This repository contains the implementation of domain-driven design and clear architecture in ASP.NET Core.

License:MIT License


Languages

Language:C# 48.8%Language:CSS 34.6%Language:HTML 15.0%Language:JavaScript 1.2%Language:Dockerfile 0.4%