Adaptive Code via C#. Agile coding with design patterns and SOLID principles (2014)