Most Helpful Customer Reviews
|
|
35 of 37 people found the following review helpful:
3.0 out of 5 stars
Decent Book, But the Audience is Wrong, July 3, 2008
Overall, this is a decent book. But, simply because the author didn't properly define his audience, I have to mark it down a notch. From the 1st sentence of the "About This Book" section in the Introduction (on page xxvi), the author states:
"I assume that you already have a working knowledge of some object-oriented programming language, such as C++, Java, or Visual Basic .NET."
So, I assumed that since I'd already learned C, C++, and Java, but just dabble in programming, I could use this book instead of plowing through another 1200 page book that starts out with a chapter on sequential statements, a chapter on conditional statements, a chapter on iterative statements, etc.. But, that was a faulty assumption. Instead, this book is REALLY designed for programmers who've done some fairly advanced work in other object-oriented languages UNDER THE WINDOWS .NET FRAMEWORK. For instance, at the start of Chapter 1 (page 1, paragraph 1, line 1), it says:
"Since this is a book for experienced object-oriented developers, I assume that you already have some familiarity with the .NET runtime."
And, on page 231:
"I'm assuming that you're already familiar with the nongeneric collection types and collection interfaces available in .NET 1.1--specifically, those defined in the System.Collections and System.Collections.Specialized namespaces."
So, if you're not very familiar with .NET, you'll have problems with the book. Also, the author tends to slip out of even that "advanced .NET programmer" audience in another way: he sometimes writes to programmers who've used previous versions of C#. For instance, when he introduces Delegates in chapter 10, he never really ties them to the C/C++ model of function pointers or Java's inner classes. The closest he comes is saying they implement a callback function.
The author also assumes knowledge of various design patterns from the "Gang of Four's" Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) book (and a few other sources, too). Here are the patterns he references and the pages where he makes those references:
- Abstract Factory: p 451
- Bridge: p 262
- Collection: p 36
- Disposable: pp 3, 19, 106, 187, 189, 374, 376, 377
- Expert: pp 172, 193
- IOU: pp 320, 354, 355, 362
- Monitor: p 337
- Non-Virtual interface (NVI): pp 117, 143, 144, 236, 238, 365, 366
- Observer: p 265
- Singleton: pp 74, 143 285, 377, 381
- Strategy: pp 122, 266, 276, 291
- Template Method: p 366
- Visitor: pp 424, 437
There are also some smaller things that are a bit irritating. First of all, his code formatting is inconsistent. His use of braces ({}) changes constantly. Sometimes he'll start a block with the first "{" immediately following a keyword on the same line. At other times, he'll put it at the start of the next line. Sometimes, he uses both in the same hunk of code. Ditto for his positioning of instance variables (fields in C# terminology). Sometimes he'll have them at the top of the class. Other times, he'll have them at the bottom. Sometimes, both. And, least importantly, he uses too many forward references (especially referring to Chapter 13).
Overall, if you happen to be an advanced programmer who programs in an object-oriented .NET environment for a living and you want to pick up the latest version of C#, this is a very good book. It certainly won't bore you with trivial stuff, and the way the author presents things will be very helpful. But, if you're just a dabbler with limited experience, the book will probably be confusing. As such, I can only rate it an OK 3 stars out of 5. In future printings, if the author merely revises the stated audience to reflect the actuality, and standardizes the formatting of the code, this book would easily be a 4 star book.
|
|
|
28 of 29 people found the following review helpful:
5.0 out of 5 stars
C# for Real Developers, January 27, 2008
I bought this book last Wednesday and figured it would be a decent enough overview of the new language features. I don't want to downplay the job he does covering new langauge features becuase that coverage is superb, but the job he does covering C# fundamentals is so well done that it eclipses everything else.
So it's a great book for beginners? Well, probably not. I think beginners would benefit by it but it's not a beginners book by any mean. What I do mean is that he does a really in depth job of covering just about every aspect of C# so that he can show the benefits of the new features as well. I've read over 100 books on .NET in the 7 years I've been working with it and frequently the Go to guy when it comes to exception handling for instance. So I really wasn't expecting to learn anything new here. But stylistically, the points he raises in showing how one could elegantly handle a Transaction rollback scenario is just really brilliant. And that same brilliance is exemplified throughout the book.
To that end, the examples in this book are it's real strength. As someone who's written a few books myself, I know how tempting it can be to come up with really simple and overused examples b/c basics aren't much fun to write about. Trey however totally resisted that temptation and I for the life of me can't see a single area that looks like he just 'wanted to get it done'. Everything is seemingly well thought out and written in a way that can clearly make his point clear. He also harkens back to C++ and the fact he has a ton of C++ experience shows through everywhere. It has a feel to it reminiscent of my senior computer science textbooks but without the stuffiness and without coming off as academic. On the contrary, it's the whole aire of advance business scenarios that makes it so cool
Now on to the new language features. I've read several books on LINQ and Lambda expressions. And while they are all great, his explanation of Lambda exprssions and the walk down Functional Programming memory lane is priceless. Had I read this book early on, the nuances of Lambda expressions would have been a lot easier to understand. His coverage of LINQ is in depth as well but he manages to really keep on track and show the business aspects of LINQ without every going down the path of sounding like a 'cool new feature cheerleader'.
I'll admit I have a pretty strong like of Apress books and have a pretty high expectation with their stuff. When I read Faison's Event-Based Programming : Taking Events to the Limit - I found it to be one of the most compelling and well done books I had read in ages. Internally, I thought it would be a longgg time before I came across a book anywhere near that good. Well, all I can really say is that Trey Nash proved me quite wrong. He exceeded any expectation I had by tenfold and got a lot out of this book - not just in C# terms but across the board.
|
|
|
8 of 8 people found the following review helpful:
4.0 out of 5 stars
Whirlwind Tour of the C# Language, December 24, 2007
The book is appropriately titled as it includes the fundamentals for novices and a fair amount of advanced material to satisfy the intermediate developer. Don't expect to see too many pages devoted to any one topic as this book covers everything from basic C# syntax to Lambda Expressions. For a language book, it was refreshing to see some mention of best practices for once. Just about all of the chapters are sprinkled with advice and tips relating to real-world scenarios.
The book is very readable (which is extremely important to me) and the author did a great job presenting his thoughts in a coherent manner (which is very difficult to do). Again, if you are looking for a detailed reference on the new features in C# 3.0 such as Lambda Expressions or LINQ, you may want to find another book. This book covers those topics, but I believe the primary goal of this book was to give novice and intermediate developers a quick refresher on all of the language features from versions 1.0 - 3.0.
|
|
|
Most Recent Customer Reviews
|