Last week I got some emails from colleagues regarding “C# Coding Standards”. Lance Hunt’s “C# Coding Standards for .NET” caught my eye and especially the part about Object Model Design. Always prefer delegation over inheritance. Avoid “Premature Generalization”. Create abstractions only when the intent is understood. Do the simplest thing that works, then refactor as time permits. Always make object-behavior transparent to API consumers. Always separate presentation ......