by Mark Seemann,
Cross-Cutting Concerns such as logging, auditing and security often present a difficult challenge because they must be applied to diverse components across an application. This can be difficult to reconcile with principles such as the Single Responsibility Principle and DRY (Don't Repeat Yourself).
One common solution to this challenge is Aspect-Oriented Programming (AOP), but another alternative is to leverage Dependency Injection (DI) to implement Cross-Cutting Concerns in a loosely coupled fashion. This session shows how to do this by progressing from simple use of DI and known design patterns to use of dynamic proxies emitted by DI Containers.