This is not .NET specific, but the most important I think is the SOLID principle.
Robert Martin (aka UncleBob) has a nice reference here.
I will quote the most important section:
- SRP The Single Responsibility Principle A class should have one, and only one, reason to change.
- OCP The Open Closed Principle You should be able to extend a classes behavior,
without modifying it.
- LSP The Liskov Substitution Principle Derived classes must be substitutable for their base classes.
- DIP The Dependency Inversion Principle Depend on abstractions, not on concretions.
- ISP The Interface Segregation Principle Make fine grained interfaces that are client specific.
Steven Bohlen has made a short series of web casts about them at dimecasts.net.