Works By The Author...

Principles of Good Software Design

Principles of Good Software Design

Software design is the most important phase of the software development cycle. Thinking about how to structure code before you start writing it is critical. Changes and updates will inevitably arise. Good software design plans and makes allowances for added features,...

The Dependency Inversion Principle with C# Examples

According to Wikipedia the Dependency Inversion Principle (popularized by Robert Martin) states that: High-level modules should not depend upon low-level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend...

The Open Closed Principle with C# Examples

The open closed principle states “software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”.  For the sake of this post I will use the term “server” to describe a class in an API – a...