Adaptive Code via C#: Agile coding with design patterns and SOLID principles (Developer Reference)