Updates

Latest Tweet



What's New?

Check out for latest innovation, a computer based training video collection


Like this Page

Microsoft Visual C# .NET 2003 Unleashed Review by Reader

Yet another sloppily-edited, hastily-published book

I understand how much work goes into huge, comprehensive books like these, and I appreciate how hard the authors must work to meet deadlines. But there is simply no excuse for the sloppiness and inaccuracies that most of these books carry. This one is no different.

The book isn't all bad. Some topics are covered fairly well. And admittedly, C# is a huge topic. But too many chapters are vague and leap across broad topics too quickly. Some simple topics are belabored unnecessarily; meanwhile, whole large topics (like calling constructors in superclasses) aren't discussed, but they pop up in code examples. (Maybe the topic is discussed later in the book and I haven't gotten there yet, but the fact remains that code examples show it before any explanation.)

Someone new to C# is bound to be thrown for a loop by this kind of thing. I guess I've been around the block enough times that I figured out what was going on, but I can remember when this sort of thing would have puzzled and frustrated me for hours or even days.

Then we get to the chapter on multithreading. There's an example on aborting a thread that's comically wrong. The thread isn't aborted! It's still running in the background. A quick check of the task manager proves this. But the authors didn't bother to make that check. So they're leading their readers down the garden path to destruction.

And here's a solid-gold gem from the same chapter:

"AutoResetEvent reets the signaled state of the event to unsignaled when another waiting thread is released. In contrast, ManualResetEvent does exactly what its name implies: It waits until the event is manually reset before changing the signaled state to unsignaled." There's not a word of explanation about what "signaled state" means. You can read this over and over, and it won't make any more sense (unless you already know what it means). As such, it's worse than useless. All a reader can do is skip over it, and hope that the subsequent text and examples will make it clear. Someone should have circled that sentence with an angry red pen and drawn a huge, accusing question mark next to it.

Also in this chapter, the code example shows code calling the Sleep method in an instance of Thread, but that's impossible and won't compile. The method is static. It has to be called from Thread, not an instance of Thread. The author clearly did not even bother to compile his own code. To the woodshed, immediately.

There are sections later on concerning events and delegates that are nearly as bad as the chapter on multithreading. It's enough to make me wonder if the authors really understood these topics.

Finally, there's a chapter on XML that leaves me puzzled. Not because it fails to cover the subject adequately (it does fail to do so), but because it falls so miserably short that it makes me wonder why the authors decided to cover it at all. I remember when I was struggling with XML, XSLT and XSD (along with XPath) all at the same time. Even huge, detailed books on each of these topics couldn't answer all of my questions. The single skinny-Minnie chapter on ALL of these topics will only frustrate and tantalize those who don't already know an awful lot about XML. The cleverest writer on Earth couldn't have done an adequate job in a single chapter. And putting in a note telling readers that they'll need to investigate the topics more on their own is no excuse, if you ask me. If you can't do justice to a topic, then cut it, and expand your coverage on something else. Using XML in .NET, regardless of the language, is a subject that requires at least a single whole book to cover.

A note on the edition. I got the electronic download edition. Amazon listed it as a "PDF." After I got it, it turned out that it was an e-book, which is a type of PDF. I had to get a very recent edition of Adobe Reader, and the book is registered only to me. That's annoying but not too bad. I don't blame them for not wanting the book to be pirated. But what really irritates me is that I can't print any of the book (were they worried that I'd print a copy, then make photocopies?), and I can't even copy and past short snippets. I paid a pretty hefty price for this book. In my opinion, that clearly gives me the right to print out chapters, or the whole thing, if I choose. Being locked out of printing ensures that I will never again pay nearly full price for the digital edition of a book from Amazon. I've been cheated, and I don't like being cheated.

I guess I'll have to fall back on the MSDN for my tutorial. Somebody, please...kill me.