I've been given the opportunity to review the Krasis Press Book (".NET Windows Development; Everyday Tips, Tricks & Optimization") by Alberto Población (C# MVP). It is a book easily read with approx. 250 pages and written by an author with good command of the English language, hence it is easy approachable.
Audience to this book
In the foreword, the author states the audience of the book is Line-Of-Business (LOB) developers. This is not a very precise definition as this category spans a great variety of people and can include both junior developers with little experience under the belt, as well as experienced senior developers with years of experience in .NET development. The proper audience to this book would fall into the first category (junior developers) which will benefit most from reading this book. There is not much to gain for the senior developer.
The book seems a listing of the everyday obstacles the author has faced over his long career as consultant in the field. In that respect it does cover some by now “ancient” development techniques that is not considered best practice anymore.
As an example ADO.NET is covered with problems/solutions that indeed was an issue if you go back 4-5 years; whereas these problems no longer exists for the everyday developer as free and built-in ORM tools like Linq2SQL, Entity Framework and NHibernate etc. have replaced the need for direct manipulation of data. You can of course think of a situation where direct manipulation is due, but such case is rather rare in my view. In that light some of the chapters unfortunately seem an outdated waste to people with senior experience.
Another example that I’m curious about is the fact that the author choses to focus on an again ancient UI-technology like WinForms? WinForms is a 25 years old technology that, granted is in use a lot of places today, but it is definitely not considered the obvious choice for new applications. Here Silverlight and WPF have taken over the throne as best practice and the first choice for UI-development; this is not touched at all.
Not all is outdated though; a few chapters touching on new technology like Windows 7 specific API’s are coved which comes as a breath of fresh air in the book. That’s a good thing.
In my view – this is a book definitely intended for the junior developer. As the book is a listing of problems the author has seen in the field it is not very focused but covers a great array of areas in .NET development in general. A rather large portion of the book addresses known and basic technology that one should already know if you are a .NET developer, hence this seems a waste to me. To be able to gain a lot from this book, you need to be facing a specific problem that matches one in the book. In that case, you can adopt a list of solutions to such problem, otherwise is it just a listing of problems with solutions.
I would have liked to have seen topics covered like WCF, WF, WPF and Design Patterns if the intention was to present a comprehensive list of problems and matching solutions. None of these are touched on in the book unfortunately. I’m wondering if people presented with a problem would not go hunting the Internet for a solution instead of reading a book that possibly may presents a solution to a problem you are facing.