I'm trying to learn Onion Architecture and as i understand, I've organized my solution as follows:
Domain
- Domain.Entities (Business objects)
- Domain.Interfaces (Interfaces for domain services and repositories)
- Domain.Services (Implementation for domain services interfaces)
Infrastructure
- Infrastructure.Data (Implementation for repositories and unit of work with EF)
- Infrastructure.DependencyResolution (Implementation for IoC with Unity)
UI
- UI.WebMVC
And here are my questions:
1- Am i right with these layers or i'm missing something ?
2- As for services that are related to a specific technology (e.g. Logging), where their interfaces should be (Domain.Interfaces or Infrastructure.Interfaces) ?
3- As i understand, The Domain Service will process my business use case so what are the benefits i'll get from application service
4- What are the differences between Domain Service and Application Service and in which project Application Service interfaces should be?
5- Should User Authorization process be a part of Application Services or Domain Services?