By injecting the IConfiguration interface in the data access layer's constructor, the HomeController can simply call the DAL methods without directly managing the database connection details.
"To overcome most issues we can use Dependency Injection (DI). Swapping in a new implementation becomes much easier as components don't rely on a single shared instance but on protocols that can be implemented in different ways. This promotes flexibility, easier testing, and adaptability as app requirements evolve."