MVVM application architecture, where to put dependency injection configuration class, BusinessLayer and Common interfaces?
- by gt.guybrush
Planning my architecture for an MVVM application I come to this:
MyApp.UI
View
MyApp.BusinessLayer
ViewModel
MyApp.DataAccessLayer
RepositoryImplEF
MyApp.DomainLayer
DomainObject
RepositoryInterface
MyApp.Common
Logging
Security
Utility (contains some reflection method used by many levels)
CustomException
MyApp.UnitTest
I was inspired by Domain-driven-desing, test-driven-development and onion architecture but not sure to have done all well.
I am not sure of a couple of things:
where to put dependency injection configuration class? In the common project?
where to put BusinessLayer interfaces? in Domain layer?
where to put Common interfaces? in Domain layer? But Common in referenced from domain (for some reflection utilities and for DI if the response to 1. is yes) and circular reference isn't good