Book Review: .NET 4.5 Parallel Extensions Cookbook
Recently I received a free review copy of another .NET related book published by Packt. This time it was a pretty niche title, .NET 4.5 Parallel Extensions Cookbook by Bryan Freeman. I had quite a tight deadline for the review, but fortunately the book was so interesting, that I didn't have any problems working through it at a faster pace.
Even though it might not be obvious from the title, the table of contents makes it clear that the book author decided to give a thorough overview of the current state in parallel development for .NET. As it turns out, he managed to do it pretty well. The book is definitely the best single source of information on this topic I've come across, suitable both for readers with previous experience in the subject and those without any.
The first two chapters introduce tasks and continuations as the basics which the rest of the book builds upon. The remaining chapters could probably be read in any order, although there are some cross references in other chapters as well, making it a better idea to read the book from cover to cover at least once. The recipe based approach still makes sense, though, as I'm pretty sure most of the readers will be returning to individual recipes at a later time when looking for a particular solution.
There are a couple of recipes in the book that could be further approved. The sample code occasionally includes some bad practices that could easily be avoided without making it any longer or more difficult to understand. Also some recipes could have used a more suitable scenario for demonstration or a couple of additional pages for a better explanation. None of them really miss the point, but a couple of them do stand out a little, probably because most of them are that good.
Still, I have learned quite a few new tricks while reading the book and I would have even more if it wasn't for my previous hands-on experience with many of the topics covered. If you are considering or already developing parallel or asynchronous code, I strongly recommend reading this book. Actually, I recommend reading it even if you're still managing without using such approaches. It will prepare you for the future or perhaps convince you that you should already be doing it. In spite of a few rough edges, it still is one of the most useful books, I've read recently.