I recently ran across this review for the Framework Design Guidelines. A couple of interesting quotes:
The fun part of this book was reading all the annotations that were given throughout that sometimes revealed insider mistakes made and I got a sense in some areas of some "I told them so and now they agree I was right" attitude. I related well to many of the stories as I've been there in my own mistakes.
This is exactly the attitude we had when we wrote and edited the annotations. We really wanted them to come across as a developer-to-developer kind of conversation. I’ll admit that some of them are a little raw, but that is the feeling we wanted to convey...
it will save much time on endless debating over creating standards documents
In the end, this is the reason Krys and I wrote the book. As you may know, we both did it as part of our jobs here at Microsoft so we personally do not get the royalties from the book. We noticed that we spent millions of Microsoft’s dollars on arguing about these guidelines, why don’t save the rest of the industry that kind of money by simply writing down what we hope well become a definitive reference so everyone else doesn’t have to argue about these things ;-)
Of course this nice thing about a book of guidelines is that anyone can find one to disagree with and this reviewer does not disappoint ;-). I think we are not too far off on the Marker Interface issue however... While it could be clearer in the book, the summary of my position is that if you need runtime access (type safety, etc) use an interface, otherwise use an attribute.