At the last edmonton user group meeting I finally won something (besides a t-shirt :D). I won a copy of Framework Design Guidelines by Krzysztof Cwalina and Brad Abrams.
I had heard a lot of good things about this book from others but really had no motivation to buy it. The title is way to exciting and if I leave it out girls might be breaking down my door just to touch it (the book you sickos!). I must say that I was pleasantly supprised with the book and definately think it is worth having a read for developers of all levels.

The book has lots of good practices in it for more than just
framework developers. I think the name is poor and it should have been
called code/api design guidelines or something to that effect. I found
that a lot of the lessons they talked about I had already learned but
there were lots of other things I had not thought about for how it
would affect future consumers of my code.
One of the things I really liked is that this book was written and
contributed to by people who wrote the .NET framework. There are little
comments on almost every page that are tips from these people and
several stories about good design items that were put in the framework
and some regrets about things that made it in that were not very
useable. Many good practices that were shown in the book were show in
context of the framework classes that already exist. This was really
good to show a proof that everyone was familiar with.
What I really liked about the book was there were some tips that I read the title of and thought "Why is that a bad practice? I do that!" and then after reading the consequences for every one of those I thought "That is a bad practice! I am not going to do that anymore". So even though most of the tips I had learned from experience the book helped me avoid some future mistakes and also confirm my existing design decisions from people that have a lot more consumers than my code ever will.