N-Tier Architecture Template using Dependency Injection and IoC Container to manage the dependencies.