DIP The Dependency Inversion Principle -- depend on abstractions not on concrete implementations.

You'll find a fair amount of information on the web on these principles.

It seems to me that you need a good grasp of the SOLID principles before you're ready to tackle Design Patterns (in more of an Architect role). At least that is how my educational & career process evolved. Does anyone have other experiences or opinions?

I am curious to hear how other .NET developers learn and internalize Design Patterns.

Sorry, my english is not very good. It seems to me that those are not opposing topics; I think they are parts of the same idea, in fact some elements of SOLID match the ideology of pattern design. --- Diego CaMacHoMay 07, 2010

For all things SOLID, just do a search for 'Uncle Bob Martin', or 'SOLID Programming Principles'. The best book to get started is Agile Principles, Patterns and Practices in C# by Robert and Micah Martin.

Learning Design Patterns + SOLID principles changed my programming for the better (MUCH better!). There are many resources on the internet, that would be the best place to start, and the book I mention above is a must-have for C#.

Find a good users group, or visit a Code Camp if there is one near you, there are usually a lot of good talks related to Design Patterns and SOLID principles. Here's one presentation on SOLID:

I myself, I also went through the same process to improve my professional skills. First, I studied up on the SOLID principles. After that, when I started to design using these principles, most of the time, Design Patterns got automatically implemented.

On each of the SOLID design principles, I would like to see some more detailed explanations and example code. This would be of great help to beginning .NET developers. Any pointers or links would be appreciated.