Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Books Media Book Reviews IT Technology

Pro C# 220

FrazzledDad writes "Andrew Troelsen's Pro C# 2005 and the .NET 2.0 Platform, 3rd Ed. gives a great breadth and depth of coverage to C# and the features of Microsoft's .NET 2.0 Framework. He does a fine job covering fundamentals of C# and .NET in general and then dives into terrific detail on a number of important topics." Read the rest of Jim's review.
Pro C# 2005 and the .NET 2.0 Platform, Third Edition
author Andrew Troelsen
pages 1032
publisher Apress
rating 8/10
reviewer Jim Holmes
ISBN 1590594193
summary Great coverage and detail on many C# topics, but long


Troelsen claims that the book is targeted at "experienced software professionals and/or graduate students of computer sciences," and that he won't spend "three chapters on iteration or decision constructs," but he spends enough time covering basics that the book will be beneficial to developers of any skill level.

First off, the book is longer than it needs to be. Part of this is the amount of text Troelsen spends covering fundamentals, despite his claims of the book's targeted audience. Experienced developers will skip right over the sections on object-oriented programming basics and C# language fundamentals. Still, this extra material didn't particularly bother me and it's very useful to newer developers, or those needing a refresher on basics.

Troelsen's example code also has more cruft than necessary, which tends to drag out examples a bit too much. The auto-based example he carries through the book is a nice practical example, but do I really care about methods turning the radio on and off while not lending any weight to the concept?

I was also surprised to find missing any discussion of COM interoperability. While COM Interop isn't a sexy, futuristic topic, I'd think there would be great value in covering it - helping some developers understand how to better deal with migrating or wrapping up legacy applications.

Lastly, despite the book's title emphasizing C#, there are 130 or so pages on ASP.NET and XML web services. Sure, these are part of the .NET Framework, but it seems a diversion from focusing on C#.

Frankly, the bad items I list above are all nits to me in what I consider a very worthwhile book. The book's loaded with plenty of good material, starting out with a solid overview on developing .NET applications outside Microsoft's Visual Studio.

Troelsen nicely covers using the freely available .NET Framework SDK to build applications. He also mentions Textpad and has a handful of pages dedicated to SharpDevelop, the open source C# development environment. He also gives a short nod to the freely (for now!) downloadable Visual C# 2005 Express before moving into an overview of the upscale versions of Visual Studio.

Troelsen nicely lays out critical concepts in his book. His work is the first place I've found clear explanations of why one should occasionally drill into .NET's Common Intermediate Language (CIL, sometimes referred to as "IL"). Other articles and books I've read haven't really gone past the level of "gee, it's neat!", but Troelsen lays out good examples of when it can be useful - such as inspecting IL and finding out how to directly call operator overloads ("+=", for example) in languages which might not support this feature.

I also found Troelsen's discussion of remoting and serialization very clear and useful. Furthermore, he does a great job with delegates and events, starting out with manually working with event handlers. This helps the reader understand the fundamental workings of handler assignments and multicasting rather than just directly jumping to event handling assignment via the += operator.

Even better than Troelsen's conceptual coverage is the level of detail he brings to all the topics he writes on. I already mentioned his coverage of event/delegate multicasting as one example. Other examples would be his extensive coverage of reflection, late binding and threading, among other topics.

He dedicates one chapter to the guts of .NET assemblies, running the gamut from why assemblies exist, through the format of assembly headers, to how shared assemblies work. There's good discussion in this chapter on the what/why/how of the Global Assembly Cache and how to deal with publishing assemblies with policy interraction.

There's plenty of other goodness in this book. Generics get great coverage, as does ADO.NET and multi-threading. There's also a chapter dedicated to GDI+ programming for you graphics geeks.

It's nice that Troelsen carries one example through much of the book, building concepts on the same framework of his automobile classes. Source for his examples is available from Apress's website, and Apress also has a searchable e-book available. The e-book's available for free for short time if you purchase the hardcopy.

Troelsen's writing style is also easy to deal with. He's got a good writing voice which makes potentially dry stuff interesting.

It may be overly long for some folks, but this book is a worthwhile investment for those looking for clear, detailed explanations of C#. The length really doesn't detract from the book's overall value, and I'm happy to have it on my bookshelf. (I even pull it off and use it.)"


You can purchase Pro C# 2005 and the .NET 2.0 Platform, Third Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Pro C#

Comments Filter:
  • by Dante Shamest ( 813622 ) on Wednesday January 04, 2006 @03:49PM (#14394622)

    With this book. [amazon.com]

    Seriously though, unless you're a newbie programmer, I just suggest reading the C# language specifications [microsoft.com], and browsing the web for tutorials on .NET.
  • by putko ( 753330 ) on Wednesday January 04, 2006 @04:05PM (#14394760) Homepage Journal
    These folks have a formal semantics of C#:

    http://www.ti.ethz.ch/rs/ [ti.ethz.ch]

    For those who don't see the point in having a computer language if you can't say, precisely what statements in the language mean.
  • by Foofoobar ( 318279 ) on Wednesday January 04, 2006 @04:19PM (#14394901)
    I know what you mean. My PHP,PERL and JAVA code will work with Apache and IIS and on Linux or Mac or Windows. .NET, VB and C# are just an attempt by Microsoft to force developers onto one OS and to develop for one OS. If they were smart, they'd be promoting the HELL out of MONO and working with them to make it better.

  • by Anonymous Coward on Wednesday January 04, 2006 @05:26PM (#14395515)
    Even funnier since the link goes to a book called "Thinking in Java".
  • Re:C# (Score:2, Informative)

    by ichin4 ( 878990 ) on Wednesday January 04, 2006 @05:36PM (#14395611)

    If you require that that the mono library and the .NET library are exactly one-to-one equivilent, then you're right: that will never happen. Of course, that isn't even the case for different C and C++ STL libraries, so I don't think that's a reasonable requirement.

    The mono library implements the vast majority of .NET library APIs. In addition, in contains many useful GTK, LDAP, DB, and other bindings of its own that are missing from the .NET library. It is, on its own, an extensive and fully functional programming library that just happens to nearly be a compatible superset of the .NET library.

  • Re:yawn (Score:3, Informative)

    by milimetric ( 840694 ) on Wednesday January 04, 2006 @05:37PM (#14395617) Journal
    /me wakes /em up. I like C and everything. But I think that a lot of people's debates over languages and what's good for what stem out of missing context. What are you talking about? GENERAL programming? How are you going to do SQL querries in C? How are you going to get any simpler and more concise libraries than Haskell? How are you going to work with matrices as fast as MATLAB? And lastly, how are you going to beat a modern programming language like C# (or Java 1.5, or mono) for productivity?

    When you can code a huge system in C as fast as I can do it in C# or Java, let me know. By huge I mean over 1 million lines of code. And no, I'm not using Visual Studio, it breaks all over the place for anything over 100,000 lines.
  • by xiphoris ( 839465 ) on Wednesday January 04, 2006 @06:23PM (#14396070) Homepage
    Er, how was the parent marked insightful? Mark parent down!

    C# runs on the .NET platform which was openly [microsoft.com] standardized [ecma-international.org]. The standards have been adopted by the ISO, the same body that determines the metric units and also manages the C++ language. Furthermore, a number of open source [mono-project.com] groups [dotgnu.org] have begun implementing .NET for other platforms than Windows.

    And last but not least, all of the patents that Microsoft has covering the .NET platform have been released for public use. [mono-project.com]

    With open-source leaders such as Miguel de Icaza (founder of GNOME, Mono) involved in producing .NET implementations for OSes other than Windows, it's hard for me to believe you just said what you did if you're anything but completely ignorant. .NET will exist on as many platforms and OSes as people choose to implement it on. And it currently exists on many.

One man's constant is another man's variable. -- A.J. Perlis

Working...