I am building a 3 tier architecture with a Presentation Layer (PL), Business Logic Layer (BLL) and a Data Access Layer (DAL).
I want to implement it in 3 different physical projects as follows:
- PL Project -> Reference of BLL Dll
- BLL Project -> Reference of DAL
- Dll DAL Project -> No Reference
Applying the concept of IOC between the BLL and the DAL by defining interfaces and using DI via constructor injection will change the architecture as follows
- PL Project -> Reference of BLL Dll, Reference of DAL Dll (for DI of concrete types to constructors of the BLL Objects)
- BLL Project -> Reference of DAL
- DAL Project -> No Reference
Ideally I want to achieve the following, while maintaining my IOC with DI.
- PL Project -> Reference of BLL Dll
- BLL Project -> Reference of DAL Dll
- DAL Project -> No Reference
How is it possible?
Note : I don't want to use an IOC container.