Rating: - Covers the Essentials
This book provides a good introduction to basic C# programming. The 4th edition covers C# / .NET 2.0 which introduces many new features compared to 1.x (e.g. generics), and which is the standard platform for Visual Studio 2005 developers. If you're a Visual Studio .NET 2003 developer, you'll need to upgrade (or download a beta version) in order to run some of the examples. This is a book about the C# language rather than .NET, so reading this book will not turn you into a proficient Windows/Web Forms programmer. However, it provides an essential foundation for further reading on more advanced .NET topics. Jesse Liberty writes in a fairly readable style, and I particularly liked the small sections contrasting the way C# does something with similar techniques in C++, Visual Basic and Java. Some of the code examples feel a bit verbose: several times the same long listing appears in full with minor changes between each version. The organization of the book also felt a little quirky, with important topics like streams and threads relegated to the back of the book, appearing after much more obscure discussions of marshalling and remoting. In general though, a good introduction to C# 2.0.
Rating: - A good introduction/review of C#
As you might gather from the title of my review, I'm a little hesitant to call this book an "introduction" without also qualifying it as a "review." It seems to be a little bit of both in that it discusses all of the basics of the C# language first (data types, methods, etc.) but the complexity quickly escalates into some fairly complicated sample code/programs. What had me a little confused was how, in the middle of explaining a very complicated section of code, Liberty stops to also explain some very elementary points about the language that you should know by this point -- unfortunately I don't have the book with me to give a real example, but just to help you understand what I mean, it's sort of like telling someone all the in-depth and complicated details of how a database program works, and then you suddenly stop and say "Oh by the way, when you refer to a method, you need to put the class name in front of it with the dot operator" (this is something that you can't possibly have missed if you've gotten as far as DB programming!) This made it hard for me to finally determine who exactly this book is written for.
In my opinion, it's a good intro (until you get to the more complicated sections later), but you might benefit from reading something else first. I hate to sound like a broken record, but Charles Petzold's Programming in the Key of C# is an excellent foundation from which to progress. Liberty's book is the second I read after Petzold, and I know Petzold's book helped me understand this one more than I probably would have. (Liberty also has Learning C#, which is much more of an intro, but I believe it contains a lot of the same information as the first few parts of this book).
Anyway, so why did I give it 5 stars then? Here are a few reasons:
- A nice introduction to all the basic C# elements
- A section on database programming
- A section on web programming
- A discussion of the new features found in C# 2.0
- A lot of advanced topics toward the end of the book (assemblies, attributes, threads, working with COM, etc.)
In short, it seems to have just about everything you'd want to know about C# (not exhaustively, of course) and I recommend it.
Rating: - Programming C#, a good book
Well this being my first time working with C# I found the book to give a good general background, and then moving on to some of the more specific semantics of the language. Though the book only teaches how to write for Console apps, the syntax you learn is still necessary for when you move on to windows apps. .NET was described nicely and I learned quickly how to work with the platform. The tips it gave to programmers of other languages were very helpful, as I also program in C++, and it helped me to avoid errors that I would probably overlook otherwise
Rating: - Well written and laid out
For someone who is well versed in programming microcontrollers in C, but brand new to .NET and to C#, it seems like you've walked into an alternate universe where legions of previously common terms like "framework" and "method" and "sealed" suddenly have special meaning. It really takes a while to wrap your brain around it all, but Liberty has done a good job of minimizing the pain involved.
The layout of the book is good--start with the basics you need and move through examples to get you up and going. At the end there are some more conceptual subjects, but by then you know how to write some applications. I particularly like the way Liberty breaks up information into chunks--short paragraphs and regular asides/tips that help clarify the subject. Liberty does not try to impress you with his vast knowledge, but just tells you what you need to know.
While this is not a given with books on programming, I think I can say got my money's worth with this one.
Rating: - Suggestion to Author for next book
Overall, book is pretty darn good.
The problem I have with the book is the author's choice of example code. At times, instead of selecting "objects", he chooses abstract concepts such as "Compressible". For instance, in chapter 8, which covers interfaces, why not choose the traditional automobile interface. Something surely all of us can quickly grasp, so that we can focus on the C# concepts, rather than what a "compressible" is? Object "A" is a "Compressible", what???, what the heck is a Compressible..... This made it a bit difficult to follow many of the code examples, and subsequently I found myself glossing over the examples, moving on to the next pages in hopes of something more interesting.
As a side note: My favorite computer book of all time is "Win32 System Services" by Marshall Brain. The examples in the book get right to the point, making it very easy to read. This is my benchmark I gauge all other books by.
Other than that minor complaint, the book is a valuable resource that I intend to keep, and add to my repertoire of books.
|