As the author himself points out the usage of the word 'component' has been slightly overdone in software. This book concentrates on developing your own components using the .net framework for component-based solutions. The book starts with very simple terminology and progresses through subjects such as 'Interface-Based Programming', 'Version Control', 'Remoting' and 'Security'.
This is a very technical book which I feel should be mentioned somewhere on the cover as a novice would find this book overwhelming. The supporting web site has code downloads (for both versions of the .NET framework), an errata and other useful information. Most of the code snippets are in C# with the odd bit of Visual Basic.net.
So, did I like the book? No.
There are two reasons I really did not get on with this book. Firstly, I found it very difficult to read from cover to cover. Although I am sure many people would do this, I just could not get into the flow with this book. The chapters are too separate for any aspect of progression and I found the text, quite frankly, unexciting. Do not get me wrong, technically I was very impressed but I just struggled to read it all preferring to think of it as a reference book for specific programming tasks (a point which is enhanced by the comprehensive 35page index).
The second problem I had with this book was not so much a criticism of the book but of the fact that 90% of the information presented in this book, I already have in several others. Now I know that this is not the authors fault but it would make the book very bad value-for-money if I was purchasing it.
In conclusion then, if you are looking to do, or are already doing, component development and you do not have too many 'professional' books then this book is definitely worth the effort as the technical content is very good. However, if you have a huge library of good C# books then take a good look through it first to see if the component specific nature of the book is worth the asking price.