Author: Allen Jones, Adam Freeman, Matthew MacDonald & Rakesh Rajan Publisher: Apress, 2010
Aimed at: Beginner to intermediate C# developers
Pros: A huge collection
Cons: Includes many trivial recipes
Reviewed by: Mike James
A useful addition to the C# programmer's bookshelf and given its size there has to be something in it you will find useful.
This collection of C# recipes is thick enough to include something for everyone. However if you have a copy of the original 2005 edition then there isn't very much new, although all the code samples have been updated for Visual C# 21010.
It is divided into 17 chapters dealing with just about everything you could think of relevant to using C# - and yes it does cover the newer topics such as parallel programming, WPF 4 and LINQ.
The topics covered include applications development, assemblies, strong names, data manipulation, reflection, files, threads, XML, windows forms, WPF, graphics, database, networking, security, cryptography, interop, patterns, parallel programming, LINQ and WPF.
Each recipe follows the usual format - statement of problem, statement of solution, how it works and the code. The quality of the explanations and even of the code is variable. Comments are included in the code by way of additional explanation.
Many of the recipes seem very simple indeed. For example, read user input from the console. But usually, when you look closer, the code does more and, in the case of console input for example, it has a secret mode which doesn't display the input. Whether you think that this is enough to justify the inclusion of this recipe is debatable but I for one skipped over a fair number as being too trivial to be worth looking at.
Certainly none of the recipes are rocket science, especially so when stripped down to their essentials - Play a WAV file for example could be reduced to:
SoundPlayer player=new SoundPlayer(file.wav);
The actual listing includes using a dialog box to get the file name and the use of try-catch-finally to dispose of the SoundPlayer instance - all things that are obvious from the documentation.
Equally you can find examples of doing most of the things listed in this book on the web - simply search on the topic and you will usually be rewarded with a few code examples doing the same jobs. Of course on the web the quality is variable and you might not find what you are looking for - but the same is true of the book.
As long as you aren't expecting too much or anything too advanced or clever then this will be a useful book on your shelf and given its size there has to be something in it you will find useful - but it is far from being essential.