Q41: How you have created your project structure that supports Clean/ Onion Architecture?
==================================================================================
Q41: How you have created your project structure that supports Clean/ Onion Architecture?
<<projectname>>Solution // eg School Sytem
│
├── <<projectname>>.Domain // Enterprise business rules
│ ├── Entities
│ │ ├── Student.cs
│ │ ├── Teacher.cs
│ │ └── Admin.cs
│ └── ValueObjects (if needed)
│
├── <<projectname>>.Application // Application business rules
│ ├── DTOs
│ │ ├── StudentDto.cs
│ │ ├── TeacherDto.cs
│ │ └── AdminDto.cs
│ ├── Interfaces
│ │ ├── IStudentRepository.cs
│ │ ├── ITeacherRepository.cs
│ │ └── IAdminRepository.cs
│ ├── Services (or UseCases)
│ │ ├── StudentService.cs
│ │ ├── TeacherService.cs
│ │ └── AdminService.cs
│ └── Mapping (optional: AutoMapper profiles)
│
├── <<projectname>>.Infrastructure // External concerns (EF, Repositories, etc.)
│ ├── Data
│ │ └── <<projectname>>DbContext.cs
│ ├── Repositories
│ │ ├── StudentRepository.cs // implements IStudentRepository
│ │ ├── TeacherRepository.cs
│ │ └── AdminRepository.cs
│ └── Migrations
│
└── <<projectname>>.Api // Framework/UI layer
├── Controllers
│ ├── StudentController.cs
│ ├── TeacherController.cs
│ └── AdminController.cs
├── Program.cs
├── appsettings.json
└── Startup.cs (if not using minimal APIs)
==================================================================================
==================================================================================
==================================================================================
==================================================================================