Talk about the basics of DI and loose coupling. Inversion of controls from the basic to the more advanced patterns. Display the issues and challenges in code. High-level modules should not depend on low-level modules; both should depend on abstractions. Abstractions should not depend on details. Details should depend upon abstractions. What are some of the most common framework/containers to support DI and what benefits/disadvantages they have. Talk about the Built in DI framework in .net core.