Author: John Paul Mueller
Publisher: Wrox, 2009
Aimed at: Novice programmers using C#
Pros: Extensive, general and superficial overview of development process
Cons: Tends to present standard ideas as novel
Reviewed by: Mike James
This is a very vague and waffley book that seems to be mostly about general design and development issues. It most certainly isn't about C# except in the sense that when it does need to illustrate some point or other then the language used is C#. What is perhaps worse is that even when the topic is doing something practical the details given are what you could find in the documentation in a few minutes.
The book is divided into four parts. The first deals with Design Strategies but it hardly rises above the level of "you can or should do it this way". If you have never heard of agile development, say, or never considered performance profiling then the information might come as a surprise. For most developers it's just going to be old news.
The second is about coding strategies which seems to equate to using the IDE in effective ways. This is basically about customisation of Visual Studio, mostly in fairly obvious ways - define code snippets, use scripts to automate tasks - and general coding tasks such as - documentation, using components, error handling, testing and debugging and so on. Even when we get to topics that could have some deep ideas we are simply presented with surface level documentation of what exists. For example, in the section on exception handling, where there are lots of very deep issues about how to do it, we are basically presented with what an exception is, how to handle one and how to implement a custom exception. Nothing you couldn't find out from the documentation in a few minutes.
The third part is about speed, reliability and security. This is a slightly deeper look at how to evaluate performance and using FXcop to analyse code. Nothing new and nothing particularly specific to C#
The final part is an odd collection of topics listed under the heading Special Coding Methodologies. This deals with serialising XML, Linq and most strange of all F#. You can't help but think that these have been thrown in to give the book something topical to list among its contents. Given the vagueness of the rest of the book they are very much out of place and still don't go very deep into anything much.
If you are a complete beginner who is just about to write a major application then you might find some of the descriptions or observations useful. Most programmers can survive without a copy of this title.