- Data Access Layer
- For Dealing with Database Entities And Migrations.
- Business Logic Layer
- For Handling the Logic of my application and dealing with Interfaces and Repositories.
- Presentation Layer
- For dealing with Views,Controller and ViewModels.
- Repository Design Pattern
- To separate the data access layer and maps it to the entities in the business logic through Interfaces to make it easier for extending our application in the future.
- Unit Of Work
- To group all DataBase CRUD operations into a single transaction "unit of work".