Mình đang xây 1 project base sử dụng những công nghệ và pattern mới mà mình cho là hợp lý có thể làm structure code cho bất kì dự án mononithic.
Các kiến trúc, thư viện, pattern mình sử dụng:
- Clean architecture: dựa trên nguyên lý loại bỏ sự lệ thuộc giữa các đối tượng cũng như các layer trong ứng dụng.
- CQRS(Command Query Responsibility Segregation): đây là 1 pattern với mục tiêu tách bạch 2 luồng Command(các thao tác cập nhật dữ liệu) và query(các thao tác đọc dữ liệu)
- MediatR: là 1 pattern thuộc nhóm Behavior Pattern, mục tiêu của nó là đứng trung gian nhận các thông tin(message) và chuyển đến đúng chỗ nhận
- Generic Repository và Repository pattern: Repository đóng vai trò tập trung lại các logic code chọc xuống database, Generic Repository được thiết kế để là thành phần chung của các repo nhằm tránh sự lặp lại code không cần thiết
- UnitOfWork: cũng là 1 pattern giải quyết vấn đề xung đột khi logic xử lý gọi đến nhiều phương thức cập nhật database
- Mapster: là thư viện giống với AutoMaper nhưng được đánh giá về hiệu suất cao hơn AutoMaper rất nhiều
- Fluent Validation: thư viện để bắt các data request đi vào. Mục tiêu tách bạch với phần xử lý logic chính ở Application
- ExceptionHandler: cái này mới .NET8 mới được hỗ trợ, thay cho tạo GlobalMiddleware
- Identity: Identity API endpoints sử dụng những endpoints có sẵn được hỗ trợ từ .NET8
- Chức năng: CRUD, PHÂN TRANG...
Source code: clean-architecture-template
