Let’s start by saying that I loved this book. While in a speakers lounge once I picked
it up from the sky-high give-away pile, started reading, got engrossed and well…
it ended up travelling the 500 miles back home with me!
This is a book that would have been very useful when starting my .Net career. It is
’simply’ a collection of nasty traps that .Net can lead you into. The book contains
75 separate gotchas organized into related sections.
Some gotchas are just that, but others explain tricky areas such as COM interop. Of
particular interest to me was garbage collection and the Dispose()/ Finalize() coverage.
I already knew everything that was written in these chapters but the concise manner
in which they were written helped me collect my disjointed knowledge together. After
reading chapter 5 I can confidently say that I understand garbage collection basics
and the relative merits of dispose and finalize. The COM interop was of particular
interest too. I had done this on a previous project, but was simply copying example
code from newsgroups. This book gave a better idea of what happens with memory beyond
us calling into the .Net RCW.
It is difficult for me to say how much of the book is out of date because of .Net
2.0 because I only have three months 2.0 experience. From what I have seen so far
in 2.0 it looks like most of the gotchas are still valid. A gotcha does not mean that
it was a flaw with the .Net design, just that somethings are tricky/ unexpected such
as exceptions thrown from thread pools are lost. As you can guess I recommend people
at least borrow this book. When (if?) a v2.0 of .Net Gotchas hits the shelves
I recommend checking it out. The only bad thing I will say is that if you are experienced
with .Net do not expect much of this material to be brand new, you will have heard
of most issues before but probably not seen them documented quite so well.