Programming C#, 4th Edition
Jesse Liberty


Compras Nikon
Bluetooth
1 Not the best book on C#
This is my first book on C# and it did not take me long to
realize that I've picked up the wrong book. I'm not sure if there is a better book on the subject, but as an experienced teacher and active programmer I can see a number of poor spots in the text and in the style of teaching. One example: examples. Those are really strange. Using just DateTime properties in discussing OOP is I think a bad choice.
Is this book good for novice readers? I think it's not. For experienced programmers moving from, let's say, VB6 to C# (like myself)? Not at all. Not the best book on C# and on computer programming topics in particular. It's not the first time when the popularity of the book might not be right sign for book buyers. And vice versa.

2 The best overall C# book to date.
This is simply an excellent book, and probably the best overall C# book on the market today. Jesse has a very comfortable style of presenting the salient points of C# in theory and practice. This has to be read, and thereafter referenced, by any programmer working with C# (including the 2005 Beta versions), or planning to do so. Furthermore, source code and other info is available on Jesse's website.
3 easy transition to C# from Java, if you want to
[A review of the 4th edition 2005]

As a java programmer, reading a C# book is like wandering into a parallel universe. Most things are different, but everything is recognisable. Liberty walks us through the syntax of C# and then how to program in it. All the nice things in Java can be found in C#. Strong typing. Automatic garbage collection. Interfaces. Introspection... As the author mentions, C# came out in 2000, while Java did so in 96. Those 4 years let C#'s designers effectively make it a superset of Java.

Some of you who might be tempted to read this book will be Java programmers. Well, as a Java programmer, I'd have to say that if you like Java, then intrinsically, you should also like C#. If you have to shift, for career reasons perhaps, then this book might be reassuring. You can re-express your expertise in C# with relatively little effort. The syntax is not too dis-similar. Likewise, the code snippets, necessarily short though they are, will probably follow the same logical ordering as in Java.
4 Want to learn C#? Buy this book.
I read some criticisms of the earlier versions of this book. I think they're all wrong. This is a great book if you want to learn C#, not Windows Forms, ASP.NET. The title is Programming C# not Windows Forms in C#. If you want a thorough coverage of C#2.0 this is the book to buy.

Coming from a C++ and Java background the differences and similarities are highlighted but could easily be skipped over if the reader has no previous knowledge of Java or C++(also VB6 and VB.NET).

Also another great thing that this book has been criticised for is the insistance on lots of code samples. Wow people complaining about code samples?!! I mean what do people expect from a book about programming?! UML diagrams? It's code heavy but the code is not bloated and clearly shows the practical use of the language feature. A few lines of code says a thousand words. Also typing in code samples makes it stick, how many times do you think you know something until you sit at the keyboard and say 'Wait how do I do that again?'?

Also Jesse Liberty's writing style is very easy to follow, I found that if I read this book at the keyboard or away from it that I was still taking in the content.

So if you really want to learn C# and not have to take onboard a library load of Microsoft marketing spiel then buy this book. (Also see Jesse Liberty's OnDotNet articles too at http://www.oreillynet.com/pub/au/239 )
5 Good book for learning C#
This is an excellent book for learning C#. I do not give it five stars because the section on Windows Forms and ASP.NET is quite limited. However, the initial section on the C# language is fantastic, as is almost every book from Liberty. For excercises for C# choose the Step by Step series from Microsoft, but be aware that you will need Visual Studio.NET to complete the exercises.
6 Great book for beginners or imtermediate users
I was previously a VB6 programmer with some OOP knowledge. This is a wonderful book for those who are looking for making the transition from VB6 or Visual C++. Liberty makes it very easy to understand, and has great examples for all his code. I highly recommend this, and would definitly purchase another book of his.
7 Great book to start with
Very good at giving a beginner C# programmer the basics for the language and the environment (Visual Studio 2k3).
8 Best C# book available
I've been programming .NET since 2001 and have read several books on the various tools and technologies that make up the platform. The one book that I keep in close reach is Jesse's Programming C# 3rd edition. Not only was it a great cover-to-cover read, but as a reference book, it has proven to be essential. The coverage of the C# language is excellent and the CLR and framework coverage is concise. I appreciate that the book does not try to cover too much of the framework and mainly focuses on the language and essential BCL classes. I recommend this book to anyone who wants to learn (or learn more) about C#. I don't think this is a book for beginner programmers, but if you are coming from another language, like VB.NET ;), this is the book for you.
9 Perfect C# book for the Experienced Programmer!!!
If you already have a good understanding of C++ and want to learn the C# language and some basics of the .NET framework, this is _THE_ book to get. It gets right down to the details of the C# language without endless rambling and obscure code. The examples are well suited to the topic at hand and are small and to the point. I would recommend this book to anyone who has programming experience, especially C++ developers.
10 Not as good as I expected
I select this book as my formal textbook. But after reading the part1, I have to say "It is not a great work". I think the author is a professional writer, but can not be entitled guru compared with the author of "The C Programming Language" or "Core java" who can present the core very systemeticaly and cystally clear.
Anyway, this book can be use as a warm-up for learning C#.
11 Microsoft MVP Reviews Programming C#
I have mixed feelings about this book. It wasn't until I had finished reading it when I began to understand why. The author is clearly very knowledgable in many areas. So much so that he appears bored with certain key topics and thus skims over them. On the other hand, more complex topics such Remoting, Streams, Marshaling, etc... were discussed thoroughly.

The opening sections on the .NET framework are light. If you are looking for background information on how this new runtime works in comparison to other environments, you'll need to look elsewhere. This 5 page section gives you the basics and that's about it.

The chapters on ADO.NET didn't have enough coverage and had a relatively small amount of code samples in comparison to other C# books. Most applications written in C# will utilize ADO.NET and developers need a lot more information than this to be successful.

Arrays, Collections, and Stacks are covered comprehensively to say the least. You'll get more than enough examples and tutorials to create complex methods. The discussion on the differences between Queues and Stacks was quite helpful.
The threading section was a bit weak. You'll get the standard explaination and examples found in just about any threading article on the web. The good 'ol counter example with two different threads. I would have enjoyed a detailed discussion on thread pooling especially with network requests.

If you are new to the object oriented approach to programming, the author does spend a good amount of time in this area. By the time you are finished with these chapters, you'll be able to create more complex implementations. You'll undoubtedly refer to this section many times as part of your design review for the do's and don'ts.

I got the most out of the chapters on Streams and Remoting. They contain a wide variety of detailed code samples that are extremely helpful. Especially the Streaming example of a Network Streaming Client/Server implementation. Of course, I would be remiss if I didn't mention the entertaining Captain Kirk reference during the explaination of marshaling across app domain boundries.

If you plan on writing applications that are dependent on networking remote objects and streams, then this would be a great book to pick up. It really clarified quite a few questions that I had on the subject and prepared me to create some interesting network based applications. However, if you really just need the nuts and bolts of C# and ADO.NET, there are better books out there.

(...)
12 Great Book
Great for the new C# programmer. You really need to have an understanding of programming concepts to get the most out of this book though.

Very good examples of ADO.net and real-world applications.
13 Practical, concise C# for intermediate and new developers
Practical, concise C# for intermediate and new developers.
Liberty covers some essential topics needed for introduction to C#. The examples are great; hopefully there will be more examples with a scale of difficulty, and more tutorials for future revisions (reason for 4 out of 5 star). I believe, one needs to master this book and then you'll have a fair understanding of programming in C# and .NET.

Thank you Jesse,
-Andy
14 Great for people moving from VB to C#
I am an experienced VB programmer who needed to learn C# in a hurry. This book was fantastic. The title is misleading because it is not a reference book for "Programming C#". If you already have an overview of C# then do not get this book. If, however, you need to learn all the basic in's and out's of the language it would be hard to do better than this book.
15 Great Book... Very easy to understand complicated concepts.
I must say that I'm impressed with this book. I have read so far approx. 200 pages and Jesse explains the concepts with such clarity that even people with no OO programming experience will be able to understand the basics. Don't get me wrong. This is not a beginners book, but it does not use complicated terms to explain simple concepts. In some other programming books you would have to read the same line 4 times before you get the idea. That does not happen in this book.
16 5 for 5
great book covering most of the details needed to have a solid understanding of whats going on behind the scene and on the scene.
17 Let down by grammatical and cut & paste errors
I purchased the 2nd Edition of this book, so some of my comments may no longer apply. Essentialy, I like the authors style very much, but when O'Reilly get hold of most books they manage to screw them up with typographical errors and incorrect figures etc. I tend to avoid O'Reilly books for this very reason, as I have never encountered so many errors in any books from other publishers. I don't blame the author for this, because many of the errors would not pass the eye of someone who actually knew their subject well enough. My guess is that once the author has produced his manuscript, the rest is handed over to the typesetters (i.e. low paid cheap overseas non-technical labour, just a guess) who consistently manage to ruin an otherwise good book. If you don't like lots of errors in technical books (and I mean really large bloopers, as well as more subtle ones) then avoid O'Reilly books in general, and go for a quality publisher instead. Especially true if you are a beginner.
18 Newbies look else where.
This book is a very good read for people who have some prior programming experience. However you don't have to be an expert programmer. This book is one of the best books for Java or C++ developers who want to learn C#. Perhaps, a Java developer will have the easiest transition. This is a compact book that covers the fundamentals of the C# language. It will give you a solid foundation.
19 Awesome Book on C#
This is one of the best books on C# available on the market.

Be aware that it is not for the programming beginner, in my opinion. This book is perfect for seasoned C/C++/Java programmers or those who are fairly comfortable with C#.

If you're just starting out learning C# and the .NET Framework, I would definitely recommend buying this book and reading it AFTER you have read a more basic book on learning C# programming.

But one thing is for sure --> This book NEEDS to be in your .NET library!


20 This is THE book to learn C#
Very very easy to read. Full of good examples. It grabs you by the hand and teaches you step by step everything about C# in simple, understandable words. Provides examples on every topic, makes comparation between C#, VB.NET, C/C++ and Java. I was eager to learn C# but I did not want to read from a hard, meticulous book. I found this book and it was awesome reading it, and when you less know it you are finished reading these +600 pages book and already programming C#. If you are still deciding which book to purchase, there are good books out there, but THIS ONE is a definitive good decision to acquire and read.
21 Not well put together
I work through every example in a book to make sure I'm not glossing over important details as I read. What I found in this book was a real mess of code from one example to the next. Many times the code examples appear to be building on each other as you progress through each chapter but if you actually work the examples, you find that variable names are different, naming conventions are all over the board, and you end up spending time trying to figure out what changed instead of focusing on what you're supposed to be learning. It also felt like a lot of the concepts were just being tossed into the text instead of being treated thoroughly. I will say that I just had to stop after chapter 5 so it may get better but I'm really disappointed so I'm giving it a low rating.
22 This book is not as good as I expected
When I made a decision to purchase this book based on the first couple of reviews @ amazon.com. I bought this book two weeks ago and so far I am reading chapter 14.

The book is not clear and sometimes confused in describing C#. I myself got confused a couple of times. Here are a couple of examples, in page 195, "IComparer and IComparable ..." section, where does "IComparable" comparable come from? I had to look up from MSDN to find out it from System.IComparable. Another example, is "string" a built-in C# type or just a keyword mapping to the .NET class? Third example is why "using System.Text;" is used in code examples 10-2 and 10-3.

Does ADO.Net only provide disconnected classes but not connected classes? That is an idea the book give me. The book does not mention anything about the connected classes. I assume that some of developers would still use the connected classes. I also purchased "ADO.NET in a nutshell" by B. Himilton and M. MacDonald. They are pretty good in giving me better ideas of what are ADO.NET and and some points of how it would be used in the real world.


23 Who Cares about Typos? Great Book!
This book is quick, it is made for the programmer with past experince looking to upgrade their skill set. I love the way that Mr. Liberty divides the book into sections. Allowing you to skip stuff you already know and only read what you wish to learn/remeber.

The way that he includes information about ADO.net and ASP.net is great as it allows me. To see where I could go with this language, and some of the things I can do.

His use of code is the way it should be. Small snipets that refer to exactly what he is talking about. I have caught some mistakes but as I said I am a PROGRAMMER, so I caught them quickly. Besides they are small and would have been caught by the compiler anyways.

The size is exactly what it needs to be. C# is a rather large language so there are quite a few things to be covered. As well as that Mr. Liberty adds small sections to allow for review of important concepts eg OO.

The final section is rather advanced and I personall skipped it. But I have a feeling that I will come to a point when I will have to go back and review it.


24 3RD EDITION IS FULL OF TYPOS
I returned this book after 2 days because of the numerous typos and other glaring errors.

The ratio of obvious errors to good tips is about 1:1 for the first three chapters and I assume this holds true for the rest of the book. I don't know if these errors were introduced in the 3rd edition or if they are carry-overs from previous editions, but the number of errors is just unacceptable.

If the errors and typos are corrected, this book would rate at least 4 stars.


25 A Very Readable Introduction to C#
This book was one of the suggested texts for my 'Web Development' course last semester, which dealt with ASP.NET using C#.

Our lecturer stated that Jesse Liberty's Programming C# was probably the best out there for those students who already know how to program, and who understand the subleties (or even the basics) of OO Development. I have developed in Java for a few years, have some exposure to C++ and needed to get up to speed (as fast as I could) on the C# language for the course I was taking.

With that objective in mind, Jesse Liberty's book served admirably. I finished it in about a week and a half, though I only skimmed Part 3 as I did not need all that material at the time.

Part 1 is a concise, thoroughly readable expose on the C# language itself, it's syntax, etc. The author's writing is not dense, the examples are nice and simple, about a page long on average, which suits me fine, as I did not want to have to plough through complex long-winded examples; there was plenty of time for that later anyway. The explanations (at times) may be a bit 'short' for new programmers, who may need more pages (and more detailed examples) devoted to polymorphism, the nature of objects, stream processing, etc, etc, but for those who already are quite comfortable with such concepts, then Programming C# should be ideal.

Part 2 of the book gives a general overview of Windows Forms, Web Forms, Web Services and ADO NET. These chapters provide just a flavoring, a taster, on these topics, so set your expectations accordingly. I particularly liked the chapter on ADO NET, and wished there was more of it. The writing was very clear, and the examples well chosen.

Part 2 also gives some screen shots of the Visual Studio .NET IDE, how to get going with it, how to drag and drop controls onto your Forms, how to create projects, that kind of thing. Quite useful in fact, as I had no idea how to begin using the IDE initially. Again, this IDE treatment is very introductory, so it may not benefit all equally, though I certainly found it helpful.

Okay, I'll have to mention one thing I didn't like about the book: the chapter on Delegates, chapter 12 I think. I found that a bit confusing and it took me longer than I'd planned in order to get through it. Maybe this was on account of my background; Java uses interfaces for event handling, events, etc but DOT NET uses this delegate model.

That aside, I would certainly recommend Programming C# to those looking to get a grounding in the C# language.


26 Very good book
I really enjoyed this book. I think its a great intro to C# and a generally good reference for it.

The only negatives are that some of the examples simply aren't real-world. That's a minor thing, and I wouldn't let it deter me from buying the next edition of the book.

I also wish there were more whole apps in the book. Writing everything to the console gets boring. Again, this isn't a big deal and doesn't detract from the overall usefulness of the book.

If you are a serious C# developer or want to become one, I think you should give this one a good read and keep it close at hand as a reference.


27 Excellent language introduction and reference
This is a perfect introduction to the language and reference work. It doesn't have deep coverage of the class libraries, it focuses on the central languages features in the first two sections and then covers their application in the second and third. But it's the first section of the book, which covers each of the core language features (variables, conditionals, class use, class construction, collections and data structures, etc.) where the book shines the brightest.

I don't having anything particularly negative to say about the book. The code samples are brief and use sparingly. There aren't many screenshots, and I prefer it that way. The text is well written and concise. And the author sticks to the central themes of each section without delving into the minutiae.

This book is O'Reilly at it's best, well written and edited, built specifically with the engineer in mind, and taking the time to develop and refine a work that helps the reader as opposed to inflating the author.


28 Good Book but Some Poor Example and Lacks Some Detail
This is a very decent introduction to C# and the .NET environment. The book offers a reasonable introduction to the basics of the C# language: types, conditionals, loops. It also discusses OO basics in the context of classes, inheritance, and polymorphism. The book then goes on to introduce Windows Forms, ASP.NET, and ADO.NET. Finally, there are discussions of assemblies and deployment, interoperability with COM, reflection, threads, streams, Web Services and other goodies.

Considering the breadth of the material the text is quite clear and the sample code is generally accurate and useful. Sometimes one needs to go through a whole program listing to extract the line or two that is being discussed, but that isn't so bad because it does provide a useful context. Setting the code
apart by making it bold might be a nice touch though.

The section on interoperability with COM seems a bit weak, and I could not find the OCX and COM components on Jesse Liberty's Web Site as the book promised (the source code is there, but no pre-compiled components). I thought the section on delegates was also weak: The MSDN libary material is more clear in this regard. All in all, most of the chapters are quite solid, but now again there is a chapter that I think ought to be re-written from scratch. I find it a bit strange that the old material has not really been revised much since the 1st edition.

I would say that the target of this book is a fairly solid, well-grounded developer. The book does tend to omit details that would likely stump a beginner, so if you're looking for a book that makes every step very explicit, this one is probably not the best choice.

I consider this to be a good first C# book for developers who have solid experience in other languages. Supplemented with the material that's available free on MSDN, it provides a strong foundation.


29 An excellent introduction for all but the novice programmer
Programming C# provided me with a thorough introduction to Microsoft's new programming language. I have experience with C and Visual Basic 6, but little with true object oriented programming. Programming C# provided lucid explantions of both C# syntax and the object model used by the language. It also provided ample tips and stylistic suggestions.

The organization of the book deserves praise. Part I covers the language fundamentals. I personally read all of part I, as well as chapter 13 on Windows forms and am now ready to program. I can also understand most of the MSDN documentation. I plan to read the remaining chapters on an as-needed basis. Thus, Programming C# will serve as a reference book of sorts.

My only criticism is that the examples in Part I, while they clearly demonstrate language features and object oriented programming, only print messages to the console. Only in chapter 13 was a fully functional application given in an example.

Still, I highly recommend this book to anyone with prior programming experience.


30 Good way to start learning C#
I have no .NET background, but I have programmed in Java, C, and C++, and I can tell you that this is a good book for an introduction to C#. I would not recommend this book for someone totally new to programming, this book references C, C++, and Java often when the situation calls for it. The first third of the book starts out with the OOP basics (i.e. language fundamentals, classes, inheritance, arrays, polymorphism, etc). The second third gets going with programming actual applications (both web and desktop), the final third gets into the .NET CLR (Common Language Runtime), which discusses versioning, threads, synchonozation, etc. Overall, this book is a good way to start learning C# for the person with OOP experience
31 By far the best book on C# I've read
I am one of those people who buy a lot of programming books. I must have six on C# alone, but this one is by far the best written, and the most to the point. The examples are short, clear and (most important) complete. The explanations are clear, but what is most important is that the author does not just repeat what is in the MSDN and other help files, he walks you through the language, teaching you exactly what you need to know to be productive.

The proof of the excellence of this book is in the second and third part, where he goes well beyond the basics to show you how to use C# in building applications and then how to use the framework with C# to achieve advanced goals.

This book does not stand alone. If you want to build ASP.NET applications in C#, start with this book and then go on to the author's book Programming ASP.NET. If you want to build Windows desk-top applications, start with this book and then go on to the author's Programming .NET Applications. In any case, though, this is a great foundation book, and far exceeds the other primers I've read.

As others have mentioned, the author provides unprecedented support for his book on his web site, but what no one else has mentioned, as far as I can tell, is that he also recommends books by other authors (and even other publishers!) to further your study of .NET.


32 This book deserves 5 stars and more
This is the single best book I've read on C# and may be the best introductory book on programming in an object oriented language I've ever read.

There are some surprising reviews below, I suspect they were written by people with an agenda that had nothing to do with this book, because Programming C# is clear and well written, with excellent examples. Liberty goes way beyond the standard documentation to explain all the fundamentals of hte language, which is why this book continues to be one of the best sellers in the field.

The first part of the book is a primer on the language, and it is clear, and understandable and to the point. The second part is a quick review of how to use C# to create .NET applications, and the third part shows advanced topics in C#.

In addition to having written an excellent book, Liberty supports his book on his web site, where he provides all the source code and a support discussion group, where he personally answers readers' questions.

All in all, this is certainly the best C# book I've ever read and may be one of the best programming books I've ever read.


33 This book stinks.
The author has succeeded at stating everything and teaching nothing. I am ashamed to say that I read this book cover to cover. It was my first book ( out of 7 ) that I read on .NET and I consider it to be the worst. [...]
34 Excellent books for Beginners
I've read a number of books on C#. This book is defiantly the best place to start learning C#. Don't expect miracles. This will just get you started. And you wont loose interest half way through.
35 A bit heavy for beginners, but very useful
As a non object-oriented programmer who has only slightly dabbled with Java and C/C++ (mainly working with ASP and PHP) and never touched .NET, I found this book pretty tough going.

That said, although I had to reread a couple of the pages, I think this is probably the best book for both non-OO and OO programmers to pick up, who want to start learning C# and .NET application development. After reading this book, I believe the .NET SDK documentation would be sufficient to fill in all the gaps. Adequete code samples of both correct and some incorrect programming methods are provided along with detailed explanations and how certain aspects of C# differ from VB6 and Java. The language of the book is technical, but quite understandable. As I said previously, I've dabbled with Java and C/C++ before - but after reading this book I finally have a proper understanding of the fundamentals of object oriented programming.

So for all those programmers who have been thinking about .NET for the last few years but just haven't gotten around to learning it, this book is probably the best place to start. Note that I said "programmers"; I would not recommend this book to people who have not learnt another language yet. C# is complicated, like all object oriented languages. For non-programmers I strongly recommend that you learn a linear type language - for example ASP or PHP, before taking on something like C#.NET.

I give "Programming C#, Third edition" by Jesse Liberty 5 out of 5 as both a learning and a reference book.


36 The perfect introduction to C# and .NET
It just doesn't get any better than this. The writing is first class, the examples are on point. The author teaches the fundamentals first, and then goes on to explore how to use the language to create .NET applications. He then teaches you advanced topics that are not covered in other books.

This book is great for Java and C++ and VB6 programmers because the author provides additional specific notes indicating similarities and differences to these languages. I have a friend who had no prior programming experience, and she found this book to be an excellent introduction to programming. As an experienced C++ programmer, however, I found plenty of substance and I thoroughly enjoyed this book.

In addition to excellent writing and useful examples, the author supports the book on his web site and on his own discussion forum, and he has written follow on books both on web development and on Windows development.

I've read a number of books on C#, and this is by far the best written and the most comprehensive without being overwhelming.

When you finish this book, go get his book on Programming ASP.NET!


37 Very good
This book was great for learning and getting into C#. I have recommended this to many ppl IRL and recommend it to anyone reading. It is a bit of an overview book, but for people that are just looking for something to start C#, this is great. Taught me much about it and now I can 'drill-down' to the parts I am most interested in.
38 I cannot understand why the rating of this book ....
I cannot understand why the rating of this book in amazon.com is good. I have bought this book based on the reader's review on amazon.com. But now I think the ratings from amzon.com is quite misleading.

Before I read this book, I downloded .NET SDK and read C# documentation in it.

I cannot find any new depth or information in this book more than the C# tutorial and reference SDK.

This book is just cursory.

One of the reason could be that C# does not have much to say to learned java/c++ programmer.

But anyway, I wish the writer could provide readers with the unique characteristics of C# compared to java and c++.

I am disappointed that the author does not mention that C# does not permit to specify the exception in the method definition.

This is critical shortcomings from programmer's viewpoint.

In conclusion, I have doubt why MS creates another language and why this book has so good reputation from reviewes from amazon.com.


39 The classic book on C# - required reading
This is the classic book for learning C#. It is little wonder that it has been outselling all other C# books on Amazon for months and months.

Liberty's writing style is clear, and is use of examples is terrific. Each example is kept simple enough to illustrate the point at hand, and not distract with fancy footwork that confuses the reader.

Liberty starts with a full explanation of the language. The book is targeted at programmers with some experience in some other language (VB6, C++ and Java are the clear targets) but a bright reader can get through this book with little or no previous experience.

After teaching C#, Liberty shows how to use it to create applications. He demonstrates simple Web and Windows Applications, and a Web Service.

Finally, in the third part of the book Liberty goes beyond the basics to show advanced ideas in the .NET Framework and how they are used by C# programmers.

This is the best book money can buy, and Liberty supports the book at his web site where he provides all the source code and a link to a private support discusssion center where you can get additional help from him and others.

This book, combined with his Programming ASP.NET (now coming out in a second edition) helped me become a proficient ASP.NET programmer. I'm looking forward to his new book on writing desktop applications (Programming .NET Applications) and I hope he continues to write for O'Reilly, because the quality of these books (editing, etc.) is very high.

All in all I can recommend this book very highly.


40 The best C# learning book out there!
I wanted to start programming C# and had no real programming skills. I drained the market for CSharp lerning books and finally found one that suits my braincode :)
This book was written for humans!
41 Good treatment of C# and a good overview of .NET
This is a review of the 3rd edition. I am a diehard C++ programmer making my way into the world of .NET and C#. Bought this book to get up to speed on both.

About half the book is devoted to C# and there is a good treatment of the language along with tips for C++ and VB programmers making the switch. The second half of the book consists of an overview of the major parts of .NET, including ASP.NET, Winforms, web services, the CLR, remoting, etc...

I'd recommend this book as a good initial overview of C# and the .NET technologies to anyone coming from the Win32 platform SDK and C++ world. Very readable with concise code examples.


42 comprehensive survey, but needs copyediting
The book touches on most areas, though lightly. This is a wide survey of a huge subject, in just 666(!) pages of content, so you can't expect it to be complete.

What you ought to expect is topics presented as linearly as possible, simple examples with details chosen for relevance, and references or new concepts to be briefly introduced. Unfortunately, the book lacks what you might call good serialization.

In places, you don't know where it's going until you get there. Concepts appear out of nowhere, and sometimes never get explained in useful terms (when two good sentences would do). Examples sometimes have tons of irrelevant detail or complexity, and the author can switch gears or put examples through long incremental transformations without helping you out along the way (e.g. assuming you know what's coming, or that you'll remember whether example X.Y, way back when, was the server or client, and before or after the first set of changes, etc). Chapter 19 on marshalling and remoting was actually painful (I just read it again after reading better write ups).

The content seems to be there. It just needs a really nit picky technical copyeditor, to offload the painful work from readers. I think this book takes about 50% too long to read as it stands, and is not yet up to highest O'Reilly standards. You'll learn the stuff, but you'll struggle a bit unnecessarily to do so.


43 Basic & Intermediate C# programming.
This is a great programming book by all standards. Though aimed at entry and intermediate level programers, it has a wealth of information that an advanced programmer can benefit from. I especially recommend this book for VB (VB.NET) developers wanting to switch to C#. The book is full of many great examples, tips, and dos and donts. The first 4 chapters are way too basic and may be skipped by anyone with some programming background.
44 A Great C# for Beginners and Intermediate Programmers
O'Reilly is the undisputed champion of technical books and Programming C# is another example of why. This is the third edition of what has been a great book. The new content in this book covers the new .NET 1.1 framework and the new Visual Studio .NET 2003.

Programming C# is both approachable for newcomers to the C# or programming world and detailed enough for experienced developers learning or using C#. It is broken into three distinct parts:
1. the C# language;
2. programming in C#; and
3. the Common Language Runtime (CLR) and the .NET framework.
Each of these sections could be (and most are) a book in their own right and Jesse Liberty does a good job addressing each one.

In Part 1, the C# language, the author takes the reader through the typical "hello world" application to intricacies of exception handling and delegates (which I love by the way). Liberty touches on everything from traditional object oriented design (classes, inheritance, etc.) to operator overloading and support for other .NET languages. An extremely important point made (albeit in a very short section) in the operator overloading chapter is operator pairs. I don't know how many times I have seen Java and Smalltalk developers overload the equals method without overloading the corresponding hashCode method. The point here is that with operator overloading, corresponding operators must be overloaded as well. Overall, this chapter is most useful for people new to C# or new to programming. Experienced OO developers will not find anything new in the objects and classes chapter, but that is not the reason for this book anyway.

In Part 2, the author takes us into the world of building a "real" C# application. I say "real" because no example is a book will ever cover all the gotchas and problems professional programmers see on a daily basis. Liberty touches on building Win32 applications (a bit light on this for my tastes), how to access databases using ADO.NET, building web apps and building web services. The web apps and web services chapter is the most interesting and informative of this part of the book. The author does a great job of explaining how web services work in C# and .NET. Liberty introduces an HTML screen scraping application and transforms it into a webservice consuming application, while explaining the "evils" of screen scraping. As a veteran of 3270 (mainframe) and 5250 (AS/400) screen scraping, I can definitely agree with the author....

In Part 3, Liberty goes into the internals of the .NET framework. Here the author delves into assemblies (for Java developers think jars), versioning assemblies (and why that is important - think dll hell), attributes (an interesting meta data add on to the language) and reflection, and other advanced features like remoting, streams, threads, and COM. This is probably the part of the book that the experienced C# programmer will find the most interesting. Liberty goes into a good amount of detail on each of these topics.

Overall, Programming C# is a well written informative book. The book is sprinkled liberally with code examples. I found the tips and traps a great feature that readily pointed out important topics when I was just skimming over a chapter. The only things I really didn't like was Part 1 (as I have been doing C# for about a year and OO design and programming for over 10) and the surface treatment of Win32 programming. The internals of the CLR and .NET was very interesting. I would definitely recommend this book to brand new and intermediate level C# developers. More experienced programmers may not find all they are looking for here.


45 Second Edition
I just bought the second edition and I'm sure that this edition must be better, but I don't know how. Coming from VB programming and wanting to learn C# because it pays better, I found this book to be exactly what I needed. I now feel comfortable doing C# after about 3 weeks. I know that anything I am able to do in VB that I can also do now in C#. Just a great training guide.
46 Outstanding book - should be mandatory reading
I have used many of Jesse Liberty's books in the past to get to grips with many programming subjects - Clouds to Code, Beginning Object-Oriented Analysis and Design with C++, and more recently, Programming ASP.NET.

Jesse is one of the best software authors of our time. He has an uncanny ability to predict the questions that you will ask and respond to them in the text. He does this very well in this book.

Having said that, this book *IS NOT* an idiots guide to C#. It is not a good first C# book unless you are bringing OO skills from another language like C++ or Java with you. The book covers everything you need to know in a well paced tutorial with plenty of examples.

To me, the best thing about this book is the support that Jesse provides through his web-site. He is such a great teacher and always has time to help.

If you have already started in C#, or have C++/Java experience and are looking for something with more detail, this a great book.

I believe that this book is an absolute must! You can't go wrong.


47 Programming C#
Jesse Liberty's Programming C# aims to expose its audience to Microsoft's newly introduced programming language that targets its managed .NET platform. I gather that the Programming line from publisher O'Reilly emphasizes instruction through example. Consequently, this book contains tons of code snippets, while still managing to cover a large range of topics. Though the book does succeed at introducing C#, I consistently had the feeling that it didn't have a clear idea of what its audience should be. In the introduction, Liberty seems to imply that this book would be suitable for everyone from a green newbie to an industry expert. Unfortunately, one-size-fits-none is the rule rather than the exception when it comes to these kinds of scoping decisions, and this book ain't no exception.

That's not to say that Liberty doesn't make a valiant attempt at presenting the material in a way that is comprehensible to everyone. In general, his explanations are succinct and his writing style is quite natural and enjoyable. This is a big plus, since the book weighs in at a cool 600 pages of explanatory text. A lot of those pages are devoted to code examples, as mentioned above. Liberty chooses to exemplify each and every major topic discussed with a complete program, and I suspect that most readers will appreciate this grounded approach, as I did. My only real complaint here is that the discussion of each topic seemed to be slightly incomplete. Explanations of some of C#'s features seemed to be limited to how it applied to his coding examples, and rarely went any further. Given that most of the examples given were rather basic, this can get to be rather frustrating when you need a little more detail to be able to solve the real problem that you're facing.

This book covers everything from the basics of Object-Oriented programming, to most of C#'s more advanced topics. In an earlier review, I was gripping that C# In a Nutshell (also by O'Reilly) didn't cover any Graphical User Interface (GUI) related topics. Happily, Programming C# has more than enough GUI examples to at least get yourself oriented in .NET's way of doing things, though you would still need a better book or reference if you plan on doing GUIs for a living. The book is divided into three parts: the first covers C# language features; the second shows you how to use C# to program different types of applications, such as Web Forms and Services, Windows apps, and even how to tap into ADO.NET, a subset of the .NET platform dedicated to working with data sources; the third part supposedly covers the Common Language Runtime (CLR), and other .NET features. However, the detail here is especially thin and disappointing, which leads me to my main complaint about this book.

As I mentioned earlier, Liberty attempts to write for everyone. However, by doing this, I feel that he makes nobody happy. A raw beginner will have a tough time keeping up with all of the newly introduced concepts, even if an attempt is made to explain all of them. In contrast, an experience professional will quickly get tired of the explanations for every basic concept, and might feel a little gypped once he or she gets to the advanced sections and finds that there is very little detail. I personally felt that way, and I also got a little irritated by the occasional bad advice that Liberty would dispense freely (such as when shows you how to overload the "==" operator, which is not generally a good idea when dealing with a managed language.) Also, the organization of the book is a little odd. Why is the chapter on Streams the second-to-last one in the book? Isn't I/O one of the very first things you want to show when discussing a new language? Why is the chapter on Interfaces shoved between the chapters on Structs and Arrays? Why is it three chapters after Inheritance and Polymorphism?

All in all, this is a good book that complements C# in a Nutshell well. Though there are tons of examples, you might be a little disappointed if you're looking for something outside the scope of those examples. As an introduction to the language though, it's probably pretty hard to beat at the moment.


48 Best of the Introductory C# books I've read
In the past 18 months, I've looked at a number of the Introductory C# texts and this is the best one that I've found.

It has a clear discussion of events and delegates, something no other book handled well. It also has some good notes for people switching from Java or C++ to C#.

All in all a good book. To this day it remains my primary C# reference.


49 Absolutely, without a doubt, the very best book to learn C#
...This is a great book to learn C# because each concept is explained in detail, step by step and illustrated with small, well throught out examples. There are a few errors in this as in every book, but the author provides updated source code and a complete errata on his web site.

In addition, this book goes beyond teaching the language and teaches how to use C# to build various kinds of .NET applications. Finally, in the last section, Liberty teaches advanced concepts in C# programming that you won't find in many other books.

I loved this book.


50 Best primer I've ever read
This book is an excellent introduction to C#, but it goes way beyond the language to show you how C# is used with .NET and also to show you advanced topics.

Liberty starts slow, with a complete disucssion of the syntax of the language and the meaning of object oriented programming and how it is implemented in C#.

The second part provides a quick but surprisingly complete introduction to building Web and Windows applications with C# and even introduces ADO.NET

The third part tackles advanced topics such as attributes and reflection, threadion, etc.

His writing is clear, his examples are on point and useful and he provides additional support on his web site. I highly recommend this book, both for people new to .NET and especially for C++ and Java programmers making the transition to .NET.

If you are totally new to programming, check out his Learning C#, but for everyone else, this is THE book to have.


51 Disapponting and Sloppy
I was attracted to this book because of prior good experiences with the OReilly series. What I expected was lean, mean, structured, complete, and accurate. What I got was light, fat, unstructured, incomplete, and sloppy.

An example paragraph:
"Classes and their instances (objects) do not exist in a vacuum but rather in a network of interdependencies and relationships, just as we, as social animals, live in a world of relationships and categories"

If it was just a few bad paragraphs of socio-biology, it would not matter. However the technical content of the book is written in the same sloppy fashion. Summaries are missing, important details are relegated to "oh - by the way's" hidden many pages after the topic.' Concepts are presented in random fashion. A little salt here, some pepper over there.

Instead of careful construction, what you have is "stream of conciousness" technical writing. Leave this to James Joyce. It has no place in a book on programming.


52 Missing a lot of material
I don't recommend this book as it doesn't cover how you really _use_ C# in a .NET environment. It covers only the raw C# language, and doesn't even do that well.

You have been warned.


53 A good read.
I've encountered some really "bad" technical books but this wasn't one of them. I wanted a book that I could read in a week or so and come away with a good introduction to the C# language. It provided the good read (but don't wait for the movie version) and an OK introduction to the language. It is "somewhat" comparable to the old Kernighan & Ritchie C language book (simple concise examples - even with a few errors) that illustrate the author's point but is more comparable to the Java Programming Language book by Gosling etc. None of these books could ever possibly cover the entire spectrum of what is possible for the language they're describing but they do provide some insite into the basic syntax and some of the possible uses for the classes that compose the underlying framework. It was a useful lead in and now that I'm interested in the language I can follow up and locate other more advanced texts dealing with C#.(something with patterns or thread management, for example, would be nice).
54 Mother of ALL C# bOOKS
Hiya ALL,

All I can say is that this is the mother of all books. I like the way its written. But its a bit of hard at the beginning. I would have liked a soft start. But anyway, a goodbook.


55 Lacks practical application of concepts
Jesse Liberty clearly understands the concepts of object oriented programming and C#, but fails to apply the information effectively. The begining chapters may be a bit too advanced for someone who has not worked with object oriented programming (although the book says it will be ok, it wont). The chapters on OOP move quickly and unless you can grasp new concepts quickly, youre better off buying his other book, Learning C#. However be warned, Learning C# is a repeat of the first few chapters of Programming C#, but just longer. As you read Programming C#, you will wait for some tutorial based real world examples, but you will never encounter them. Overall this book gets a 3 because it will teach you the fundamentals of OOP, but you'll find it hard to apply it to writing a real program. I picked up the Wrox books after this and I'm very satisfied now.
56 One of the best language tutorials I've read
The key purpose of a tutorial is to teach you the language, and in this case to then show you how to use the language to build applications. The topic of .NET is very large, but Liberty provides an excellent explanation of every significant aspect of C# specifically, and then he applies it to creating applications and using the .NET Framework.

This book is divided into four parts (three in the book and then one on his web site).

Part I is a solid, comprehensive, well written tutorial in the language. He covers it all, but he does so in a way that is clear and understandable. Advanced concepts like delegates are explained carefully and illustrated with meaningful examples.

Part II is a brief introduciton to programming with C#. He covers ASP.NET (which he covers in more detail in his ASP book), Windows Forms (is there a book on this coming?) ADO.NET and Web Services. The latter two are introduced here but expanded on in his ASP.NET book.

Part III goes beyond the language to show how C# is used with the .NET Framework, and this part alone is worth the cost of the book.

C++ and Java programmers will find part I easy going, C and VB programmers will work harder. Part II is just an overview, and part III is simply terrific.

The final part is the extensive support Liberty provides on his web site. Not only does he offer a FAQ and errata, but he has a link to a discussion group where he answers questions about the book!

Finally, the writing is excellent, the examples terrific and the overall quality of this book superb. O'Reilly continues to produce excellent books and this is no exception.

I highly recommend this book, unless you have no prior programming experience at all, in which case you might prefer to start with his other book, Learning C#.


57 Poor language coverage
This book is really only a cursory guide to C#. It doesn't cover any advanced C# programming at all. But the book doens't cover basic language fundamentals very well.

My rating may be harsh, but if the book doesn't cover the simple stuff well, but also isn't advanced enough for real programmers, what use is this book?


58 First rate writing, excellent coverage
This book is quickly becoming a classic. First rate writing is combined with depth of coverage and well designed and executed example code.

Liberty not only writes well, and with a natural abiltity to explain difficult topics, he goes beyond by showing examples that illustrate exactly what he is trying to teach.

The coverage of C# is excellent. The second part of the book is a quick intro. to programming in .NET and this is weaker, but of course the idea here is just to provide an introduction.

The third part is an in depth exploration of advanced topics, and this is excellent.

Finally, his book is fully supported on his web site, where you can get the source code and also post questions in his private discussion area.

I must add that some of the negative reviews I've read about this book seem to be talking about another book, or were written by people with an interest in hurting this one. Maybe I'm missing something, but this book is so good, I've passed copies along to co-workers and friends and they've come back and thanked me and bought Liberty's other book, on ASP.Net.

Excellent. Highly recommended and very useful.


59 World Class Introduction
This is a fantastic introduction to this important new language. The coverage of C# is excellent, the examples are clear and easy to use. The author goes further and provides a quick introduction to developing both windows and web applications, and then, in part 3, explains the more advanced aspects of programming C#.

I'm surprised by one review here which says that that the author is wrong when he says

int myArray = new int[5];

creates an array of 5 integers. The reviewer points to this as an error, but it is correct. The reviewer is confused by 0 offset, but Liberty gets it right, and he explains well why this array will be indexed 0-4.

More important, Liberty writes well and he fully supports his books, offering the complete source code along with a FAQ, errata and, most impressive, his own private support forum.

This is by far the best book I've read on C#.


60 Poorest O'Reilly book yet
I wouldn't buy this book. It doesn't cover C# in nearly enough depth. Coverage of ASP.NET and ADO.NET is almost non-existent, and even the core C# language isn't fully coved: there's no coverage of date and time handling, and other critical language fundamentals are missing.

The Sybex book "Mastering Visual C# .NET Programming" is much better.


61 A Fine Book Badly Edited
This is a very good introduction to C# but it's full of nasty little errors that the editors didn't catch. If you're new to the C family of languages the errors can be confusing.

For instance, on page 162 Mr. Liberty writes: "myIntArray = new int[5]" and then states: "This declaration sets aside memory for an array holding five integers." The array really holds six integers. On page 223 Mr. Liberty states that "In Unicode (as in ASCII), a lowercase letter has a smaller value than an uppercase letter." Actually, in ASCII, "A" is decimal 65, and "a" is decimal 97.

There are other problems like these, so, if something doesn't work quite right, don't take Mr. Liberty's text as gospel. Try some alternatives. It's surprising to see an O'Reilly book with errors like these.


62 Errors, Errors, Errors, and More Errors
I honestly believe Jesse Liberty should stop writing books. He does not seem to have the ability to form a coherent thought, much less the ability to convey said thought. He often rambles on about the importance of this or that, then complete neglects to actually discuss the topic. He constantly contradicts himself by espousing certain coding practices and then completely ignoring those same practices.

Speaking of coding practices, don't you dare use his code to learn good programming practice. He has no concept of how to indent, apparently indenting at random, and he often forgets brackets; combine that with the random indents and you have completely unreadable code. And to top it off, he defines his variables at the END of his classes instead of the BEGINNING, unlike everyone else in the entire world.


63 Best programming book I've read in a while
This is an outstanding introduction to the language and some (but not necessarily all) implementation scenarios (windows forms, web forms, etc). Great review of fundamentals, too, which we all must pay attention to.

Some reviewers complain that this isn't 'in-depth' enough. Well, C# is a new language for a new platform. Should one expect a writer to understand and examine the nuances, tips/tricks, etc. that typically characterize an 'in-depth' analysis? Not in my opinion. Instead, Jesse Liberty tells you what you need to know to be productive right away, in a clear, lucid style.


64 Rapidly becoming the standard for C#
This book is becoming the classic -- the K&R of C#, and for good reason. The book is incredbily well written, covers all the fundamentals, and then goes on to teach you how to write in C# for building real-world .NET applications.

Other reviews have pointed out that the author provides extensive support through his web site, I will only say that the level of support is unmatched. In addition, the third section provides an excellent introduction to some of the more advanced and interesting aspects of .NeT programming.

If you are a C++ or Java programmer, this is clearly the book for you. If you have no previous OO experience, however, begin with Liberty's other book, Learning C#.

I was very impressed with this book, and recommend it highly.


65 Good Intro to C#
This is a book that is focused on C# and maintains an iron-grip on its objective. I have read some of the other posters comments and I think the greatest objection has been for the lack of dotNET information.

I would recommend this book to those new to C#. I came from mainly a Java/C background and I found this book useful to pick up the syntaxes. It is not meant for giving the more extreme dotNET programming tips.

I am not sure if this book is suitable to beginners in programming.

Please let me know if you have any questions or suggestions.


66 Not good
When I purchased this book I had little knowledge of C#. After reading the book and building all of the samples, I discovered that my lack of knowledge was something I had in common with the text. A bold statement, so let me explain.

Teaching effectively requires a deep understanding of the material, so what is important is emphasized at the expense of the trivial. In this book, everything is given equal importance, so the important material is lost in the trivial.

The text is frequently written "out of order", that is, statements are made, and then a later statement includes something you needed to understand the previous one. This is evident in the line by line code samples, where the author frequently describes line 3 of the code, and then says "but before we do that, we need to do line 2". This is confusing and not helpful.

While on the subject of the code samples, the samples frequently include a lot of useless code that just confuses the point. I ended up stripping the samples to the basics myself, and in virtually every case I ended up with a 50% or more reduction in lines of code, and a much clearer sample. Even worse, the samples could be done in much better ways, so in addition to being confusing they teach bad usage of the language.

The main problem with the samples is that many of them are taken directly from the SDK. The SDK samples are not designed to teach programming, they are designed to demonstrate how to solve a specific problem. This makes them inappropriate for teaching a language. The ones on ADO, for example, contain complex table joins, which are SQL constructs and have nothing to do with ADO or C#. The reflection API samples includes one where it writes IL directly, certainly not something that most programmers are going to do. And the text never explains the IL that is written.

I own dozens of O'Reilly books, and most are excellent. Unfortunately this one and UML In A Nutshell are the exceptions.


67 Great book for learning C#
This is a great book for learning C#. The first part is an excellent tutorial in the language, just right for experienced C, C++ and Java programmers and for advanced VB6 programmers.

The second part introduces how to use the language to create .net programs. This is a bit superficial, but his goal was only to provide an introduction, and it is a very good introduction. For more detail on really building advanced applications you will need an additional book (like his book on ASP.NET).

The third part of Programming C# goes into advanced topics you won't easily find elsewhere, with excellent coverage of (for example) threading, remoting, reflection, streams and so forth.

Liberty writes well, his examples are terrific, and he makes complex material easily understandable. Further, he supports his book on his web site where he provides not only source code but a discussion center where you can ask questions.

I highly recommend this excellent tutorial.


68 Poorly done
This book fails because:
1. Its too short and doesn't cover the meat of .NET programming.
2. Is too complex for beginners.
3. Isn't advanced enough for _real_ programmers (see point 1).

I can't believe O'Reilly put out such a book, especially since C# is a very important topic.


69 Best book even seen!!!
This is my third book in C#.
I shouldn't have read those.
This book is REALLY enough!!

It is a pity I cannot give 6 stars (out of 5).


70 Nearly Perfect
This book is nearly perfect. It introduces every aspect of the C# language in the first part, then provides a brief overview of the types of applications you might create in the second part, and finally ends with a thorough overview of the CLR in the third part.

No other tutorial I've read offers nearly as much coverage of the most important aspects, not only of C# as a language, but of building meaningful applications with C#.

The coverage of ASP.NET, WebForms and ADO.NET is, of course, superficial; Liberty's goal is just to familiarize you with these topics. He has a full book on ASP.NET for example, and with any luck he'll have books on WebForms and ADO.NET too one day.

The coverage of the CLR is first rate. He covers advanced topics here, such as reflection and threading, but his focus is on the most important things you might like to do (opening streams, creating asynchronous applications, dealing with remoting, and so forth).

The book is very well written, and he supports the book on his web site with source code, a FAQ, a full errata and so forth.

I highly recommend this book.


71 I can't believe some people give this book 5 stars
This book skims over C# in too few pages and tries to cover too much. The coverage of the C# is adequate at best, and it doesn't cover the most important aspect of C#: programming for .NET.

Also, this book is lousy for beginners, but also isn't really useful for advanced programmers either because it skims over everything.

I expected far more from O'Reilly. I think they might be losing their touch. Certainly, their .NET books are poor.


72 Clear, Complete, Excellent
This book begins with a complete introduction to the C# language, with special tips for C++, VB6 and Java programmers. The writing is excellent, to the point, humerous but not silly, no wasted words but plenty of examples.

Part 2 of the book introduces the major types of applications you might build with C#, with a good introduction to ASP.NET, web forms, web services and also to ADO.NET.

It is in part 3 that this book stands out from all the rest, with a thorough explanation of many aspects of the CLR and the Framework Class Library, including lucid and very well written explanations of Assemblies, versioning, attributes, reflection, marshaling, threading, synchronization mechanisms, streams, async i/o, and com interop. Each of these topics can be a book in itself, but this book, Programming C#, provides enough introduction to make you productive and to lay the foundation for further reading.

I've not seen a better introduction to C#, and Liberty has a gift for making technical material crystal clear.


73 Not enough depth
This book isn't simple enough for beginners, neither is it advanced enough for real programmers. I recommend you check out "Mastering Visual C# .NET" from Sybex instead: it is a much better book.
74 K&R of C#
In many respects this is like the Kernighan & Ritchie "C Programming Language" for C#. In my opinion, that is a great compliment. This book covers a large area of ground and does it with good descriptions and code. No need for a twenty pound tome when this book does it nicely (which is typical of O'Reilly books). A wealth of detail, including screen-shots, that will get you over many hurdles for starters. There is more advanced information as well. If you are doing C#, this is the first book you should buy.
75 Painful
This one tries to cover too much with too little and fails -surprise surprise. It tries to teach you C#, .NET fundamentals,
ASP.NET, ADO.NET, and Win Forms, then fails to properly elucidate any of them. Several of the chapters suffer from very uneven flow and/or lack of cohesion. All of the good programming books I've read use at least a three step approach: explanation of concept, then one or more examples that use the concept, then explanation of the examples. A number of the chapters in this obfuscated creation either deviate completely from that proven formula by skipping a step, or the explanations, examples, and concepts are so remotely disjointed that the process of learning becomes unnecessarily painful. The whole thing is badly designed and badly thought out. Covering so many different.NET topics in one book was a bad idea to begin with anyway, and this book proves it.

I really have to question whether the reviewers who gave this 5 stars ever read past the first few chapters!

BTW, I also have Mr. Liberty's ASP.NET book, and he has done a much better job there than in this one.


76 Explains C# and gives helpful opinions about good design
I am getting a lot of value from this book. I have moderate experience with VB and am new to dot Net and object oriented languages. The information is presented clearly, the language is consistent, and the examples are just right: a little ahead of my understanding as I read them through the first time, but as I read the explanation I say "Right, ok, that's what I thought that meant." If you have a lot of experience with C++ or Java, there are lots of little notes to point out to you what doesn't behave the way you're used to. Just as I would expect with an O'Reilly book, the information is dense (doesn't waste my time) but with a light sprinkling of humor. You know this book is written by a real person, someone who knows the stuff AND has the occasional bit of wisdom to share (like maybe such-and-such is legal, but it's not a good idea to use it). He does a good job distinguishing between what is correct code, what is a matter of style, and what may be legal but it's so dadburned ugly you DON'T wanna go there. I also found good support at the author's website, which includes a list of errata.
77 Excellent tutorial - World Class Writing
This book is an excellent tutorial on C#. The author writes with a full understanding of how professional programmers and serious amateurs approach programming. He fills the book with useful insights, not only into how you accomplish things, but why.

The examples are simple, straight-forward and to the point. The analysis following each example is excellent. Well written, cleary presented and very useful.

This book starts out with the fundamentals. If you are an experienced C++ or Java programmer, you'll get through this section quickly and easily. The second section introduces .NET programming and the third section tackles advanced subjects.

Throughout the writing is excellent, clear, well presented, humerous and there is great value in the professional insights provided.

I can't recommend this book highly enough. I've also read Programming ASP.NET by the same author, and will post a review for that terrific book separately.

World class.


78 Such a bad book
Lots of errors in examples, figures, and everywhere. Liberty has tried to follow Microsoft model. 'Shove the product out the door fast'.

Liberty is not such a good author, I would say. Confuses in many places.

Very, very poor and artificial examples. You can't use even a single example from this book in your real life. Please do not buy this book, if you have not already done so.

-Ganesan Rajaraman


79 not good for expert programmers
If you know C++ or Java well, then this book will be annoyingly slow and boring for the first third of the book. The treatment of the C# language is for the novice programmer and does not cover the detail of the language (so no use as a C# lang ref).
If you don't know what inheritance and polymorphism mean then this is the book for you otherwise look elsewhere.
80 The best introduction to C# and .NET available
Liberty's Programming C# is not only well written, it is a complete and thorough primer on C# programming. He begins with a terrific tutorial on the language, taking you through all the fundamentals, and making sure you are comfortable with class, interface, struct definitions and usage. He does not assume you already understand object oriented programming, but teaches the concepts as you need them.

The second part is a good introduction to using C# to program .NET applications, including web services, web apps, windows applications, and the use of ado.net

Part three is a real treasure. Here Liberty teaches the advanced concepts that are difficult to find elsewhere. He explains attributes and reflection, remoting, streams, asynchronous i/o, threading and so forth.

The examples in Prog. C# are excellent; well thought out and on point. Liberty provides source code and other material on his web site.

I can't recommend this book highly enough.


81 Almost perfect introduction to C#
"C# Programming" is close to being the perfect introduction to C#. The author has a nice style of writing that makes the book easy to read and understand. Although the author assumes that you have some familiarity with programming, he does not assume that you know C++ or Java and does not rely on you knowing either language. This helps avoid the problem some authors encounter of explaining how something is "just like in C++" and then losing anyone not familiar with C++. The author does show how to use VisualStudio.NET but he does not rely on this tool, allowing programmers without access to it to run the many examples in the book. Like most O'Reilly books, this is a well-focused and well-written product. The book is divided into three sections. The first is a detailed introduction to the language. The coverage of the C# language in this section is where the book excels. With very few exceptions (I would have liked to see a little more on nested classes) I found the coverage of the book and the examples provided to be excellent. The second section is a brief discussion of several topics including ADO.NET, ASP.NET, and Web Services. This section is just an introduction to these topics. The last section covers advanced topics such as reflection, threading, and remoting. I highly recommend this book to anyone interested learning the C# language even if that interest is purely academic.
82 Not pleased at all...
The author of this book dedicate an entire chapter to string conversion but left out what I considered to be pretty basic of many programming languages and that is string conversion to numerical type. Fundamentally, who knows what else "basic" that the author left out. Buy another book, but don't buy this one!
83 Excellent Book to start with on C#
I bought this book based on reading a lot of reviews and I think I must say I really got what I wanted out of this book. Very well written for most part, a significant number of topics covered. There are some areas where this book covers to the extent that you would ever need it, but there are some areas that I did not get enough. Example of the former: delegates [A very important concept for enterprise apps and web programming], but real skimpy on remoting etc -- I didn't understand well on the remoting stuff from this book.
I can write a lot on this, but for sure, well worth the money!
84 Very Good Book
I have purchased many C# books lately and all of them 2x the size of this book, but I always find myself using this book. The feature that stands out in this book is the vast amount of topics that it covers.
85 This is what a primer should be
This is exactly how an author should write a primer. It is clear, well written, covers all the material, has lots of exercises, the exercises are small and on-point, covers beginning and advanced material. Just right.

While the first part of the book taught me the language, this book went much further, and taught me how to apply the language to creating real applicatoins. I'm very impressed by how mcuh is covered in this book. Perhaps the most important contribution, however, is that the author not only shows you all the techniques, but shows you when and why you use these techniques. All of the skills are taught in terms of creating real applications.

The support provided for this book is unusual: the author offers source code and a support discussion group on his web site. He participates in the news groups and generally remains available to help.

I'm very impressed with this book: if I were going to buy only one C# book, this would be it.


86 C# for dummies
This book provides a lot of "what?" information, but not the "whys". After finishing the book, you are left with a lot of disconnected "facts" about C#, without a real understanding. I don't recommend this book for serious, thinking programmers. The Stan Lippman book is WAY better.
87 Excellent for Learning and Reference
I have never coded in C, C++, or Java but come from a very solid VB background. I was looking forward to learning object oriented programming but was quite a bit nevouse. This book led me by the hand vey well. It covered the c# language in depth and I still keep it as a reference 6 mos later. It also built a foundation for the .net framework, asp.net, winforms, and ado.net. I completed the picture of winforms and ado.net using the visual studio documentation and purchased the asp.net book by the same author.

I recommend this strongly to anyone starting out on the platform. Everyone at our office agrees with this review. We cannot keep track of our 3 copies. It would be nice to have a reference copy on CD or the web.


88 Quite good coverage
One of the best book available in the market. I am pleased with the coverage both in depth and width of the subject to certain extent. Initial few chapter talks about .NET and C# basics. The book explains programming ado.net, web services, assemblies, reflection, threads, streams and interoperability with COM etc, in separate chapters. Besides the fact that it is a quite good book, it is annoying to see lots of mistakes. Function names are mixed with camel and pascal notations like myVoidMethod() and MyVoidMethod(). Even we can see the class names myClass and MyClass in examples. Some times code is written for class Hello and explantions is given on class HelloWorld. There are missing links like performance implications on overriding finalize() method etc. Besides all the above problems, I believe, this book deserves 5 stars.
89 Incredibly useful book - very well written
This incredibly useful book is not only the best C# book I've found, it is one of the very best language tutorials I've ever read. It is exceptionally well written, and covers the material that I cared about.

While the first part teaches the language in great detail, and is filled with useful examples, the second and third parts go on to show you how to use C# in building .NET applications. This is where the book really shines.

I'm very impressed with the writing skill but also with the clarity and relevence of the examples.

Really, this is one of the best technical books I've ever read, and I recommend it very highly.


90 Best Book On The Topic
What a great book. Well written, straight forward, good examples. I always turn to O'Reilly for the best books, and this one is no exception. If you want to learn C# and you know anything about programming in any lanugage, especially if you already know C++ or Java or VB, then this is the book.
91 Excellent writing with excellent coverage
This book is what a technical book should be: clear, well written, well organized, with useful simple examples that clearly illustrate the ideas being discussed.

The author writes well, and the material is very well organized. The first part of the book explains the language in clear, concise terms. There is good coverage of advanced material, and excellent examples to illustrate the ideas.

The second part of the book teaches you how to apply the language to developing applications: windows, web and web services. The examples here are more complex, but they nicely illustrate how programs are built.

The third part is more advanced, explaining the .net frameworks in some detail. I found this part of the book particularly useful.

The author also provides the source code on his web site. He also offers an errata and a news group of his own for discussing his books.

I was very impressed with this book. O'Reilly has done it again.


92 Very good. Slacks off a little at the end.
I really liked this book. The Author does a great job of explain all the topics. He does not go into any of the topics in great depth but to get started with it is great. I have been programming in ASP and JAVA for about 3 years so I was already fairmilar with some of the ideas. The only complaint I have is that the end of the book (last couple chapters) are not that great. Examples get a little weaker along with the explanation. But to give him the benefit of the doubt the last few chapters cover some more advanced topics that this book was not really meant to address. Liked it enough though to buy his ASP.net book.
93 Incredibly uneven writing clarity.
This book (I have the first edition) goes from absolutely clear explanations and code examples to the worst technical writing I have ever seen. It looks like Jesse's still confused on some of the newer programming concepts that C# offers. His chapter on Delegates, as an example, is just terrible. Very confusing and the examples are even worse. I've noticed that Jesse's writing in general, I have also read (should say, tried to read) two of his books on C++, gets worse as the difficulty level of the concepts go up. This is why we buy these books in the first place, to help us understand dificult subjects. "If you can't explain it in terms that an eighth grader can understand, you don't know enough about the subject" is a famous quote that comes to mind. Sometimes I get the feeling Jesse (and many other "technical writers") are just faking it with technobabble to sell books. All you tech writers out there should check out how Mark Minasi can "turn" a technical phrase that can actually be understood.
94 The best C# book around at the moment...
I've read most of the C# books that are currently on the market, and this is definitely my favourite. It has a nice balance between the language and its practical application using the .NET Framework, and is well explained in elegant and concise language. Unlike certain books I could mention that are 1500+ pages of rehashed reference material, Jesse takes the "less is more" approach, with about 300 pages on the language followed by about the same number on the major class libraries needed to apply the language to real-world problems.

If you're familiar with the Core Java books by Prentice-Hall, you'll notice a similar style here - brief coverage of topics that should be familiar to any experienced programmer (classes, objects, interfaces etc.) with more than enough depth where necessary.

If you're already proficient with a language such as C++, Java or Visual Basic and want to convert your knowledge across to C# quickly, this book will provide everything you need in a digestible form. Recommended.


95 It's an O'Reilly Trifecta.
After putting it off far too long, I finally decided to evaluate .Net. But only after I spent several nights researching books.

I started with Sharp & Jagger's MS Visual C# .Net from MS Press, but was quickly bored. Too simple. Flaccid writing. No depth.

Then I picked up Liberty's Programming C# and Programming in ASP.NET, along with Thai & Lam's .Net Framework Essentials. I have a new entry to the Tech Book Pantheon (Fowler, Eckel, Flanagan, et. al.): Jesse Liberty.

While I'm not yet convinced that C# and .Net are going to replace Java and J2EE (or even compete strongly), I was more enchanted by the lucidity of Liberty's examples and the seamless flow of exercise to exercise, building up understanding in layers, than I was by Microsoft's technology.

Bravo.

Programming in C# and Programming in ASP.NET have set a standard for new technology exposition.

[One caveat: these may not be beginner's books, as you will defnitely need to be comfortable with OO concepts/syntax, SQL/SQL Server, HTML/XML, and general Windows de-spaghettifying issues. FYI - Jesse Liberty did do a tremendous service for developers by including all examples in C# AND VB.]


96 Excellent, Examples are First Rate
This book is not only thorough and well written, it includes example programs that illustrate the points discussed and that provide a basis for working with the language.

Liberty starts off with a complete coverage of the language, teaching you all you need to know to program well in C#. If you have any programming experience at all, this book is a fantastic primer.

The second section of the book explains how to write Windows and web applications and how to work with ADO and how to write web services. This is an amazing tutorial on the fundamentals of .NET

The third section is the gold standard on advanced .NET topics. Jesse teaches you how to work with threading, how to use attributes, how to accomplish remoting and much more.

The book is well written, very well put together and he supports the book on his web site where you can download all of the source code. Most impressive of all, he also has a support discussion center, where you can get your questions answered.

I recommend this book without reservation.


97 Editorial problems and shoddy writing ruin this book
If you want to see an example of why not to buy this book, see the "complete" code listing of example 13-3, which ends (abruptly!) on page 331. "Abruptly" means the end of the code segment is not shown! Sure, you can go to the publisher's web page to get the "real" complete code segment, but why should you? There are many examples of this in Liberty's book. A number of the examples, when followed to the letter, do not work. A number of other examples don't tell the whole story, and so you are left guessing about something or other. One gets the impression that this book was done in a real hurry, with little or no editorial oversight. I don't have a recommendation for a good alternative to this book, but I am definitely looking!
98 Very Good Book. But...
Very good book. Covers everything from basics to advanced topics. But there are minor errors in some of the source codes and discrepancy between the text and source code. For example, in the source code a variable is defined as "val" and the text is referencing a variable name "myVal". I find this confusing.
99 Didn't take long to know I had purchased a great book
With most books the reader must wait until finishing it before forming a final opinion, and this is especially true with technical material. However, even though I have completed only about 1/4 of the book I can clearly and confidently state that my search for a great C# book was successful.

Liberty presents a level of explanation and detail for the language features and syntax that exactly fits the needs of C++ and/or JAVA programmers -- no elementary fluff or filler, no wasted words, and a comprehensive list of topics.

That alone would probably make this book worth the purchase price, but it's only the beginning. After learning the programming language itself in the first half of the book, the reader is then immediately shown how to use C# within the .NET framework. The basic .NET architecture is also discussed, along with the Framework Class Library. This is exactly the way I learned how to program C++ in Visual Studio 6 (the predecessor the Visual Studio .NET) -- FIRST learn the language and then IMMEDIATELY learn about the IDE, along with MFC classes, etc.

I will say, however, that if you're not already a C++ or JAVA programmer you might want to purchase another text to learn the syntax. But you should still buy this book because of its later chapters on using C# to build .NET applications (and because it would make a fine, compact C# reference text after you've grown more comfortable with the language).


100 Didn't take long to know I had purchased a great book
With most books the reader must wait until finishing it before forming a final opinion, and this is especially true with technical material. However, even though I have completed only about 1/4 of the book I can clearly and confidently state that my search for a great C# book was successful.

Liberty presents a level of explanation and detail for the language features and syntax that exactly fits the needs of C++ and/or JAVA programmers -- no elementary fluff or filler, no wasted words, and a comprehensive list of topics.

That alone would probably make this book worth the purchase price, but it's only the beginning. After learning the programming language itself in the first half of the book, the reader is then immediately shown how to use C# within the .NET framework. The basic .NET architecture is also discussed, along with the Framework Class Library. This is exactly the way I learned how to program C++ in Visual Studio 6 (the predecessor the Visual Studio .NET) -- FIRST learn the language and then IMMEDIATELY learn about the IDE, along with MFC classes, etc.

I will say, however, that if you're not already a C++ or JAVA programmer you might want to purchase another text to learn the syntax. But you should still buy this book because of its later chapters on using C# to build .NET applications (and because it would make a fine, compact C# reference text after you've grown more comfortable with the language).



Sunday, 06-Jul-2008 17:35:58 CDT
Quote of the Day:


"A power so great, it can only be used for Good or Evil!"

-- Firesign Theatre, "The Giant Rat of Summatra"

What the world *really* needs is a good Automatic Bicycle Sharpener.