I have been meaning to write a review for this book for some time, I read it a couple months ago and have just been putting it off. It is kind of weird to review a book when the author is a friend of yours (we play on XBox live alot), but I will try my best to be completely objective.
One of the things I like most about this book, the thing that drew me toward this book in the first place, is that it is a very focused look at a small area of .NET. So many .NET books only have a small chapter or sub chapter dedicated to attributes, but this book focuses just on them.
The first chapter is what you might expect, a detailed look at how attributes work and are used in the framework. The next two chapters caught me a little bit by surprise as they go over some of the more common attributes and how they are used, I guess it makes sense to have these chapters here, but I had assumed the book would only really focus on building custom controls. Looking at some of the current attributes does help understand the difference between compile and runtime attributes, as well as provide examples of how attributes should be used, but I did find myself skimming through some of the areas I already understood. (Serialization, etc)
The fourth chapter looks at building custom attributes, using reflection, and includes a couple of good examples of how attributes can be used. This chapter does a good example of showing how powerful custom attributes can be, as well as the implementation details of custom attributes.
The fifth chapter is a case study that uses attributes to implement checked exceptions in .NET, which I found to be very cool. It is definitly very technical, and might be over the head of some readers, but I loved reading a complex example of how attributes could be used. This chapter also shows off some cool functionality in the FxCop assemblies that I was not aware of before.
I only have one negative thing to say about this book, and that is that I wish there had been another case study. I really liked the checked exceptions example, but I would have liked to have seen another example centered around validation. One of the main applications of attributes that I have seen recently is using them to validate a business entity or class, this would have been an awesome second case study.
Overall I would definitely suggest this book, it is a pretty quick read but still worth the money.