Framework Design Guidelines - Conventions, Idioms, and Patterns for Resusable .NET Libraries by Krzysztof Cwalina and Brad Abrams
This book is the result of an internal effort at Microsoft to share framework design best practices during the development of the .NET 1.0 framework. Krzysztof and Brad were part of a team that conducted API usability studies and reviews of the emerging framework APIs with the development teams doing the work. It began as a word document and review consultations with teams but eventually turned into a series of internal lectures offered to all developers working at Microsoft. That was where I first heard about this effort. The lectures were recorded and for a while made publicly available (they have since been removed). The series ultimately let to the creation of this book, which is jam packed with years of wisdom and anecdotes about good API design. If you work on shared libraries, this book is a must read. P.S. I still keep a dvd with the original lectures in my backpack. Catch me at an event and I'll share.