Amazon.com Customer Reviews
Excellent explanation of how C# programming works - Review written on May 13, 2007
Rating: 5 out of 5
4 customers found this review helpful, 1 did not.
I just finished this book and feel like the experience was a first class introduction. Liberty's style is to explain how things work and what they're intended for and how to think about them, and also provide some very clean examples, which is perfect for me. The extreme opposite style is to provide mostly step-by-step examples with little explanation, which I think gets you started quickly but leaves you not understanding what you're doing and unable to move beyond the examples. But giving some examples is a must. He handles this balance perfectly, I think.
The examples start to follow a pattern I liked - there'd be a class or several classes that exemplify whatever point he's focussed on, and then a "tester" class containing Main() that exercises them and displays results.
Liberty works through all the language basics and also spends the right small amounts of time discussing niche interests like the intermediate language, Web applications, using Visual Studio to manipulate forms, compiling from the command line. I feel well rounded after this intro. He works with Console applications while teaching the basic features of the language per se, then he first gets into Windows applications at the very middle of the book. Amusingly, for his first Windows application example the student adds the single statement "ApplicationExit();" to a button click event generated by VS, but for his second application the user's code is 9 printed pages in the book. I do think I followed this big leap, tho.
I wondered about getting his book Learning C# instead, and after browsing it I think it would have been somewhat easier for me, but I think I managed fine with this book and got further. For me, ideal might have been another 50 pages introducing things the way Learning C# did, added around the beginning of this book, but between the two choices I think this was probably the better.
I'm a scientist who also programs a bit. My programming experience is heavy on some very different languages like Forth and Assembly, and a couple tiny projects in Quick C for DOS, but no experience writing Windows applications or using OOP, no C++ or Java. This past week I wrote a Windows program with a simple interface and an object that does a useful technical task and "deployed" it to two engineers down the hall, who liked it. Reading this book and leafing around in a couple of others, and one conversation at a noisy toddler's birthday party about runtime object instantiation, were my only guides.
Programming C# - Review written on February 27, 2007
Rating: 4 out of 5
5 customers found this review helpful, 2 did not.
When Microsoft announced the C# language and the .NET framework in 2000, the reception among programmers was uncertain. Now that the language has had a solid six years to develop itself, it has a solid user base and strong examples of applications. Whatever your opinion of the .NET framework is, there is no denying that C# is popular among Windows programmers, and continuous to grow in usage.
C# is an object-oriented language, and has a decided likeness to other high-level languages like C++ and Java â although C# is noticeably simplified. There are only eighty keywords in the language, and twelve built-in datatypes. The language also shares attributes like interfaces and structs.
However, the C# language also sets itself apart from the more classic languages in a variety of ways. C# has built-in XML capabilities, which aid in the creation of documentation. It also supports a feature called âdelegatesâ, which act as type-safe references. C# also provides for component-oriented programming, which stores information using metadata. This metadata can be read and used by another environment, independent of any other information available. Effectively, it is able to create a self-contained unit out of each class.
The material in the book is very well presented, and very well written. After the general introduction at the beginning of the book, there is almost not a single page that doesnât have code on it. While this might sound a little intimidating, it is a welcome relief from books that give no code examples whatsoever. All of the code is well presented, is easy to read, and commented. Also, and perhaps most importantly, the code is discussed and explained by the authors within each chapter. The authors have done a fantastic job of providing their readers with examples to learn from.
In fact, there is so much code and so much discussion, that the book can be hard to work through. Page after page is filled with solid blocks of text and code, with little relief. This can be done and be kept interesting if the writing includes little anecdotes, jokes, and so forth â but otherwise, it becomes hard on the eyes and mundane. I would have liked to see some more images and diagrams used in the book, and perhaps a little more âfunâ text. The entire book doesnât have to read like a textbook, afterall!
The topics in the book are well chosen and arranged. The first half of the book or so is on programming concepts, syntax, data structures, etc. The second half of the book is split between application examples of C# and working with windows applications (literally â exe files, dll files, etc). I would have liked to see more example applications (perhaps even one on programming for mobile platforms like PocketPCs?), but the authors do a good job with the examples they provide. I also would have also liked to see more information on interfacing with other applications, like Outlook© or Office© - although the authors do leave the reader with enough knowledge to do the research and learn more about how to do something like this independent of the book.
There is clearly a lot of information to communicate, and this is where the authors seem to be a little confused. Personally, I cannot tell if the authors really wrote it so that novice programmers could understand it or not. The beginning of the book states that the book is suitable for anyone, both experienced and in-experienced programmers. However, I found that the material was somewhere in the middle. The authors move at a pace that is fast enough to lose new programmers, and yet approach many topics at a beginner depth that experienced programmers will find redundant. The effect is beneficial to neither party, and I suggest that the authors more decidedly define their audience in future editions to avoid the issue. The end result is that experienced programmers will have no trouble with this book at all, whereas the novice programmer may be a little confused and lost.
Overall, this is a solid text for learning the C# language. I would not personally suggest it as a âfirst-languageâ book, but anyone with some programming experience in another object-oriented language should have no problems whatsoever. The C# language has a lot to offer to anyone coding for a Windows© environment, and is increasingly becoming a necessity for programmers in that field. OâReillyâs C# text is a great lesson in the language, and I recommend it to anyone looking to learn more about .NET coding.
Don't waste your time with this book - Review written on February 16, 2006
Rating: 1 out of 5
23 customers found this review helpful, 8 did not.
This book claims "noted author Jesse Liberty gives experienced professionals the information they need to become productive quickly."
IT MOST DEFINITELY DOES NOT DO THAT.
This book might be great for relative rookies, but it is WAY too verbose for getting an "experienced professional" (which basically has to mean an experienced Windows C/C++ programmer) quickly up to speed on C#. The book covers a number of topics, all superficially, with no depth, and little insight.
Any experienced professional needing to get up to speed with .NET and C# is far better off with a quicker introduction to the specific concepts of C#, then using other books with more in-depth coverage of the various major areas of .NET.
It is often said "there are those who do, and those who write about it". Mr. Liberty is clearly one of those who just writes about it, and there doesn't seem to be a concept in .NET that is too trivial for him to take an extra couple pages talking about it in lieu of providing useful content. The code examples in the book are superficial and offer no professional level insight. The myriad cutesy and ridiculous asides such as discussions of trivial elements of coding style in a book obviously written by a programming lightweight have absolutely no place in a book for experienced professionals. The way Mr. Liberty continuously proselytizes for .NET, often pointing out shortcomings in C# syntax as features that save we programmers from ourselves is just plain bizarre.
As I said, this book may be OK for neophyte programmers who haven't had years' experience doing serious work in Windows programming, and aren't likely to do so, but it's a total waste of time for experienced professional programmers. As this book artfully avoids mention of any of the nastier issues in developing in .NET, and offers only very vanilla insight into C#, I doubt it is of any value to anyone unless they really badly want to write a "hello world" type .NET program, and don't intend going any further.
There's a reason why this book sells near new for $5. I'm not going to bother taking up valuable shelf space with the copy I bought.
A great book to begin C# - Review written on December 22, 2005
Rating: 4 out of 5
4 customers found this review helpful.
This book was one of the best books I have read thus far. I was absolutely impressed with the delivery of Jesse Liberty.
The book opens with a preface that made me really appreciate the mindset of Liberty. He completely skips through the mumbo-jumbo and simply says: if you want to know what is new, put this book down and go get this other one about blah, blah, blah. Then he gives you all of these different categories of reader and if you fit, then this book is for you. That really made me appreciate that he knew he was dealing with a beginner in C# but still a real programmer. None of that intimidation stuff here.
The book is divided into various sections namely the language, programming and the .NET Framework.
There are a lot of do's and don'ts throughout the book even with a brief explanation of why not. There are even tips, but not just any tips. The tips in this book are for the reader and developers of other languages C ++, Java and the like that already understand the topic at hand, but probably know the terms, philosophy or other things relating to that language differently, so he shows how they relate to those other languages.
CODE SAMPLES
It is very helpful that the code samples are available for download to use along with the book. It saves a lot of typing and allow for editing. There are many instances where Liberty gives instructions to cause the code to fail. Then when it does he explains why it failed. That takes us to the warnings that are throughout the book. He even explains the capabilities that C# has and why it would be better to use these instead of the older style of programming that others may be used to.
EXAMPLES
There is also a good dosage of scenarios are used as well. A complex matter is always easier to understand with a good scenario. The tutorial aspect is really good since nothing is assumed about the reader's level of knowledge with C#. Everything is explained, nothing is left out and the really fancy terms are explained before he begins to regularly use them.
OTHER TECHNOLOGY
While the book is about C# you don't get tunnel vision. This book touches on other .NET technologies C# plays along with similar web services, SQL, ADO.NET., ASP.NET to name a few. By the end of this book you will see how C# is a big part of a much, much bigger .NET Framework.
I recommend this book for anyone that wants to know, but are afraid to ask. Read this book.
Nor for experienced, niither for non... - Review written on October 13, 2005
Rating: 3 out of 5
7 customers found this review helpful, 7 did not.
I really wonder how this book deserved 5 stars from some readers.
Most topics are explained poorly, or sometimes even not explained at all!!! (I started thinking that autor himself need to learn the language). Second, to explain even a trivial thing, the autor presents loooooong codes, what really wastes time, because you always have figure out, which part part of code is really dedicated to explain the point, what sometimes makes me tired before I understand something. Also, in the most of the code examples suddenly there appear something new, something specific to C#, and autor even does not say a word about that. Because of that, since the autor has tendency to use a long code, and on the other hand has a tendency to explain trough examples, this non-explanation makes the book really impossible to understand, not reading several other books.
Who ever is thinking to buy this book please believe me, it is not the first book to read on C#. May be you will understand easily first few chapters having some programming background, but you will have much trouble understanding more advanced topics, specific to C#.
I am giving this book three stars because it is better then some other books, like for example sams c# complete...
Covers the Essentials - Review written on October 09, 2005
Rating: 4 out of 5
3 customers found this review helpful.
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.
A good introduction/review of C# - Review written on October 07, 2005
Rating: 5 out of 5
8 customers found this review helpful.
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.
Suggestion to Author for next book - Review written on August 04, 2005
Rating: 3 out of 5
3 customers found this review helpful.
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.
Detailed C# book - Review written on July 20, 2005
Rating: 4 out of 5
4 customers found this review helpful.
The book is divided into three parts - introduction and presentation of C#, C# programming techniques, and description of .NET framework and runtime environment.
First part starts with the history and motivation behind .NET and in particular C# programming language particular. And, as in most programming books the author presents a typical C# "Hello World" application, followed by discussion about such concepts as classes, methods, attributes, namespaces, that helps the reader to learn or refresh object oriented programming and language syntax. The details are provided about compilation and running "Hello World" application, instructions are sufficient enough for the beginner to launch the app and even debug through it.
Fundamentals of the C# language are presented in the next chapter, this includes types, statements, enumerations, operators, processor directives. After that the author gives a detailed description of C# classes - their declaration, initialization, constructors and destructors, overloading, encapsulation, and accessors - essentially the basic object oriented concepts, followed by inheritance and polymorphism - the section that also includes abstract and sealed classes, boxing and unboxing. Next paragraphs are about overloading, structs and interfaces. I think it would be logical to have the Interfaces mentioned earlier in a special chapter focused on general object oriented C#, instead of dedicating a separate chapter to it. Next is Arrays, Indexers and Collection - a long and very detailed chapter that explains the usage and handling of these structures. Strings, Exceptions, Delegates and Events are each very important and used by every C# programmer, and author dedicated each of them a separate chapter, thus closing the first part of the book.
Part 2 actually helps to apply the knowledge of the language to build applications, using Visual Studio as a development tool. We learn about Forms - basic user interface components, creating and coding controls. ADO.NET and data access are also described based on SQL databases. ASP.NET and web services are described in the next chapter, here we learn how to use visual and data access controls to create a web application. Steps to create an web services application are presented in good details.
The last part of the book is about .NET framework and runtime environment. It starts with a chapter about marshalling and remoting, that focuses on application contexts and boundaries, marshalling (transporting) objects across application domain boundaries, marshalling with proxies. An example to build a server and a client. Next chapter is threads and synchronization. The author assumes that the reader is already familiar with multithreading and focuses on how threads work in C#, we particularly learn about creating, running, killing threads and applying locks and monitors to synchronize them. Race conditions and deadlocks are mentioned at the end of the chapter.
The streams chapter is essentially about input output and is dedicated to reading and writing data from/to files and sockets. The last chapter is about integrating .NET with COM and ActiveX. Although the subject deserves a separate book, the author provides a detailed example how an ActiveX control can be imported into Visual Studio .NET project.
Overall the book gives a good detailed introduction to C# as a language and teaches how to use it in practice to build either desktop or web based application accessing database. Author illustrates material by screenshots and code examples, that helps the reader to easily create his or her own program. I think, given compact size of the book, author managed to put together all necessary details about C# as a programming language, .NET framework and their essential programming techniques. The book is a good reference material for someone already familiar with basics object oriented programming, multithreading, input output and looking to learn C# basics or make transition from Java to C#. As a developer who programmed with different languages I found the book to be a useful C# syntax reference source.