Customer Reviews

Rating: 1 out of 5Awkward, Dry, and UninformativeI bought this book based on the unanimous five star reviews posted here and was deeply disappointed. I honestly have no idea how someone can give this book five stars.

First of all, it is full of grammatical errors, some of which cause the entire section's conclusion to be ambiguous. Often the wrong word is used. For instance, the author begins one section by saying that there are many differences in paramater passing between in Java and C#, and then proceeds to list only similarities. Even when the writing is clear it is painfully dry, even for a computer book. The entire book reads like a laundry list, with no suggestion as to which features might be helpful or which might be confusing.

The various bullet points offer no explanation as to their relevance. For instance, at one point the author goes at length into describing how, in constrast to Java, a method can't return an object that is less accessible than the method itself. That sounds reasonable, but why is this the case? What issue in the Java security model does this address? What Java security considerations does this render moot? All the author suggests is to try it and see the compiler error.

More importantly, the entire focus of the book is wrong. The author glosses over most of the .NET framework and spends his time concentrating on the differences between the Java language and the C# language. The .NET framework itself is where the real architectural differences lie. I'd like something that tells me which .NET class to use in place of each Java class I know. The book doesn't even include an appendix for this. And truth be told, Java and C# are very, very similar. I don't need five pages explaining how I should use a colon instead of the word "extends".

When the book does address fundamental differences in the languages, it does so only on the most superficial level. For example, it mentions that while Java threads offer an isInterrupted() method, C# threads do not. But it gives no indication as to what replaces what is essentially Java's only external thread control mechanism. The only thing it says is that in C# suspend() and abort() take effect only in "safe" situations. The definition of "safe" is left to the reader's imagination.

Perhaps worst of all, the author gets tons of facts wrong about Java. The size of integers, nesting of exceptions, and the definition of daemon threads are just of few of the many errors the author makes in describing the Java language. With so many mistakes, I can't help but wonder if he was giving me an accurate picture of C#.

If you have more than a very rudimentary knowledge of Java, you will learn more from browsing the class docs in .NET than you will from reading this book. If you don't, there will probably be better books for you anyway. In short, save your time and save your money and look elsewhere.

Rating: 5 out of 5A great transition book.Hearing a lot about C# since it was announced, I wondered how similar it was to Java and C++, which I'm more than familiar with. This book stopped the wondering, and started the learning of C# without needing to go into introductory concepts about programming. It provides enough parallels from Java so that you can feel at home, and when covering topics exclusive to C#, they are described in enough detail that you can feel comfortable with them.

I've also dealt with another book on the topic, C# for Java Developers, and found it to be biased against Java; no surprise, considering that book is published by Microsoft. From Java to C# seems to be a much more balanced look at the transition. As a C++ programmer, I was entertained by the coverage of operator overloading, which was eased in as something new to Java developers. The pointer chapter is priceless as well.

All in all, a great transition book.

Rating: 5 out of 5Essence of C# for Java DevelopersMok's book is the best amongst the few targeted at the same group of Java audience. It focuses specifically on the new C# language, rather than how to make use of Visual Studio.net (which really isn't what I was looking for - I mean, Visual Studio.net is just an IDE, & I think the emphasis on learning a new language such as C# should be placed on the language itself, rather than the tool.)

This book will appeal to current Java developers who needs to pick up C# (the langauge) as quickly as possible. There is no beating about the bush, though important language concepts which may affect the design & architecture of your program are covered with sufficient detail. I particularly enjoyed reading the 1st chapter on a brief intro to .net as a whole. That chapter itself gave me a really strong foundation on .NET, & puts things in clear eagle-view perspective.

If you are a Java developer, & want to pick up C# quickly, this is the book to get. If you don't know Java, look elsewhere.