C# Design principles illustrated in code made in Visual Studio with C# 7
SOLID Design Principles
Single Responsibility -used journal code example with persistance
Open Closed Principle -used a product search example with the specification pattern
Liskov Substitution -used the classic square vs rectangle example
Interface Segregation -used printer interface functionalties as an example
Dependency Inversion -created a geneology search that uses value tuples to determine a persons familial relationship