Used price: $26.85
Buy one from zShops for: $31.85
List price: $12.95 (that's 20% off!)
Used price: $2.88
Buy one from zShops for: $2.99
List price: $44.99 (that's 30% off!)
Used price: $17.94
Buy one from zShops for: $18.90
The book covers some fairly challenging concepts, but discusses them in a clear manner. Certain sections required prior knowledge. For example in one of the sections talked about Visual Studio's nmake.exe utility. I do not have much experience with nmake.exe and the authors assumed a prior understanding, so I had to go and read the Visual Studio documentation to learn about this command before I fully understood the rest of the section. Also, I found chapter 3 to be a bit difficult to understand without an understanding of COM/COBRA.
The book contains a wealth of knowledge, and if you are going to be doing a lot of .NET programming, knowing the material and having this book as a reference will be essential to you. The appendix chapters which discuss language-specifics and .NET proved to be a useful read to get to know the benefits of each language. This knowledge is useful to determine which tool is the right choice for any particular job.
This is one of the few books in the .NET development series from AWL that I have been a bit disappointed in. Certain sections are excellent, while others leave a little to be desired. You can defiantly tell that the chapters are written by different authors as they seem disjointed and some have a higher quality than others. Overall, I would say it is a good reference to have, but not really worth reading beginning to end.
This book is filled with numerous examples of how .NET solves problems differently than other architectures such as CORBA, COM, and Java. It freely admits advantages others might have in certain areas but the authors clearly evangelize .NET as the best overall solution. It follows a consistent pattern when discussing concepts such as type systems, metadata, versioning, and security. First, it describes the core problem or challenge. Second, implementations by other languages/architectures are briefly discussed. Finally, a detailed explanation is given of how .NET offers the best solution, complete with clear examples.
Several topics are discussed that are skipped in other .NET books. Whether this is a good thing depends on your skill level and your interest in these topics. Experienced developers who are already proficient in .NET will appreciate the excellent discussion of the boxing of value types into reference types, how events and properties are implemented behind the scenes, and the line-by-line analysis of the Intermediate Language (IL) of a simple application.
While most examples are presented in C#, this book does not help one become proficient in it. The examples are given only to illustrate how the .NET Framework works, not any particular language.
What are clearly missing are chapters on creating web applications, web services, windows forms, and windows services. In other words, this book by itself only provides a small piece of the knowledge a developer must gain when learning .NET.
As a former Visual Basic developer, I am task-oriented. This is in contrast to being theory-oriented, which is how I think of C++ developers who spend an extra ten hours tweaking pointers (and tracking down memory leaks) to gain a ten percent speed increase in a procedure. Though I have converted to C#, I am still more interested in getting the job done quickly than understanding the internal details of the .NET engine.
I bring this up because this book is theory-based, and as such I found it lacking in information I could immediately apply to my programming projects. We are all stretched for time, and I would rather spend mine reading about techniques to solve business problems through real-world examples of forms and services, not learning why C# produces slightly different IL than VB.
That being said, this book has a place among developers who come from a Computer Science background, or who know C++ or Java inside and out, or who already know .NET very well and want to learn the core underpinnings. In this regard it does an excellent job and is well written and concise.
However, I only gave it three stars because I believe most developers could better spend their time with other books that offered more practical and applicable advice. Those books, such as Wrox's 'Professional C#' or Sams' 'ASP.NET Unleashed', teach just enough of the core underpinnings to keep a developer from shooting himself in the foot, yet focus most of the time on real world examples that are far more useful.
The co-authors are exactly the right people for this purpose. Brad Abrams was a .NET development lead; Mark Hammond implemented Python.NET; and Damien Watkins helped Monash University learn about .NET before starting his own .NET consulting company.
When I was one of Microsoft's Technical Evangelists for .NET, I invited Mark and Damien to participate with Brad in the design of the .NET Runtime back in 1999 -- along with the designers of other commerical and academic languages such as Smalltalk, Scheme, Eiffel, Haskell, Oberon, etc. -- to make sure that the .NET Runtime and CLR really could support different languages well. Their feedback made .NET more flexible, powerful, and useable. In this book, they explain not only HOW .NET works, but WHY. After all, these guys helped MAKE those decisions.
Some have said that only compiler writers targeting .NET would be interested in reading this book. I could not disagree more. At each level of abstraction above the silicon, more and more trade-offs must be made by those implementing the abstractions. If you don't understand the feature and performance trade-offs they made, then you're not going to be able to make good trade-offs yourself, when writing code that uses their abstractions. In an ideal world, all abstractions would be pure, involving no trade-offs; but .NET was designed for the real world, in which performance still matters. Do you write code for the real world, too? Then you NEED to read this book.
If you'd rather read the Kama Sutra than "Sex for Dummies," then order this book RIGHT NOW.
Buy one from zShops for: $219.00
Used price: $21.01
Collectible price: $10.59