Framework Design Guidelines: Conventions, Idioms, and Patterns for Reuseable .NET Libraries - Krzysztof Cwalina; Brad Abrams