Based on the project structure below i will have some questions
- Domain Layer
1) MyApp.Domain.Entities (DLL)
Product.cs
PagedResult.cs
Referentes
No References
2) MyApp.Domain.Interfaces (DLL)
IUnitOfWork.cs
IProductRepository.cs
Referentes
MyApp.Domain.Entities
3) MyApp.Domain.Common.Interfaces (DLL)
IClock.cs
ICryptography.cs
ILogging.cs
Referentes
No References
- Infrastructure Layer
1) MyApp.Infrastructure.Logging
Will implement the interface ILogging
Referentes
MyApp.Domain.Common.Interfaces
2) MyApp.Infrastructure.Cryptography
Will implement the interface ICryptography
Referentes
MyApp.Domain.Common.Interfaces
4) MyApp.Infrastructure.Data
Will implement the interface IUnitOfWork.cs e IProductRepository.cs
Referentes
MyApp.Domain.Entities
MyApp.Domain.Interfaces
------------------------------ Questions ---------------------------------
A) In my Domain Layer I have MyApp.Domain.Common.Interfaces that will keep interfaces that can be used for all project, this interfaces will represent common elements that whole project can use and will be implemented at Infrastructure Layer.
Am I breaking some Onion Architecture rule having it in my Domain Layer?