takes you through from a simple 'Hello World' to some quite complex mini programs
This book falls into the same category as the likes of Ammeraal's ' STL for Programmers ' and ' C++ for Programmers ' books in that the latter contains pretty much all of the former, but with lots more in the way of explanations and examples.
[I have to say that I strongly disagree with this characterisation of Ammeraal's books.
Jesse Liberty's other O'Reilly C# book ( Learning C# ) is really contained in this book. Which is a bit of a gyp if you already have the first one as they cover just about the same core material, but with this one giving more examples, more explanation and with a few corrections in from the original.
Where this does come into its own is on the .NET material. It takes you through from a simple 'Hello World' to some quite complex mini programs. All of them are well explained, well thought out and rather well documented. Jesse has obviously put a lot of thought into the preparation of this area.
Past the .NET material, a lot of time is spent on streams, Internet related material (there is an example of implementing an asynchronous network fileserver, webstreams and asynchronous I/O - all of which are not simple things to implement, but the way the book is presented, the logic is easily seen and the book shows the theory as well).
All that in mind, why only a 'recommended' rating? Simple - it's only an extension of a previous book.
If you haven't bought Learning C# and don't mind paying the extra ten pounds, then this book is well worth the money. If you already have the Learning C# book, then this may not be as good value.
All of the examples compile fine under Mono (with Winelib) and MSVC#.NET 1.0 and 1.1. Recommended.