SOLID Principles with Examples in C#

Implementing the Inversion of Control Pattern in C#
http://www.codeguru.com/columns/experts/implementing-the-inversion-of-control-pattern-in-c.htm

SOLID Principles in C# – An Overview
http://www.codeguru.com/columns/experts/solid-principles-in-c-an-overview.htm

SOLID principles with real world examples
http://blog.gauffin.org/2012/05/solid-principles-with-real-world-examples/#.Ulv_JlC1G8M

 

ref: http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)

Initial Stands for
(acronym)
Concept
S SRP
Single responsibility principle
class should have only a single responsibility.
O OCP
Open/closed principle
“software entities … should be open for extension, but closed for modification”.
L LSP
Liskov substitution principle
“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”. See also design by contract.
I ISP
Interface segregation principle
“many client-specific interfaces are better than one general-purpose interface.”[5]
D DIP
Dependency inversion principle
one should “Depend upon Abstractions. Do not depend upon concretions.”[5]
Dependency injection is one method of following this principle.

 

What’s the difference between the Dependency Injection and Service Locator patterns?
“The difference may seem slight, but even with the ServiceLocator, the class is still responsible for creating its dependencies. It just uses the service locator to do it. With DI, the class is given it’s dependencies. It neither knows, nor cares where they come from. One important result of this is that the DI example is much easier to unit test — because you can pass it mock implementations of its dependent objects. You could combine the two — and inject the service locator (or a factory), if you wanted.”
http://stackoverflow.com/questions/1557781/whats-the-difference-between-the-dependency-injection-and-service-locator-patte

 

The Principles of Good Programming
http://www.artima.com/weblogs/viewpost.jsp?thread=331531

3 Key Software Principles You Must Understand
http://code.tutsplus.com/tutorials/3-key-software-principles-you-must-understand–net-25161

 

 

Liskov Substitution Principle

Can you explain Liskov Substitution Principle with a good C# example?
http://stackoverflow.com/questions/4428725/can-you-explain-liskov-substitution-principle-with-a-good-c-sharp-example

Simplifying the Liskov Substitution Principle of SOLID in C#
http://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/06/30/simplifying-the-liskov-substitution-principle-of-solid-in-c.aspx

Liskov Substitution Principle in C#
http://www.c-sharpcorner.com/UploadFile/b1df45/liskov-substitution-principle-in-C-Sharp/

 

 

 

 

 

Moscow Prioritisation

MoSCoW Principle: Must, Should, Could, Would
“MoSCoW is a technique used in management, business analysis, and software development to reach a common understanding with stakeholders on the importance they place on the delivery of each requirement – also known as MoSCoW prioritization or MoSCoW analysis.
According to A Guide to the Business Analysis Body of Knowledge, version 2.0,[1] section 6.1.5.2, the MoSCoW categories are as follows:”
https://en.wikipedia.org/wiki/MoSCoW_method

Moscow Prioritisation
“Must Have, Should Have, Could Have, Won’t Have this time”
http://www.dsdm.org/content/10-moscow-prioritisation