Few days ago I have received an invitation from Packt Publishing to review this book. I myself is a big fan of Generics and is very interested about it, so I've decided to give it a go. Thank you for letting me review this interesting book.
.NET 4.0 Generics (Packt Publishing) is written by Sudipta Mukherjee. The book is primarily targeted to beginners and intermediate programmers who want to know what .NET Generics is all about and how it can help solved real world problems.
The book covers the fundamental concepts of type-safety, generic methods and generic containers and highlights the importance of generic collections and generic class. The good thing about this book is that knowledge in .NET Generics is not a requirement for as long as you are familiar with C# program constructs such as variable declarations, looping, casting and so on.
Chapter 1 talks about the beauty of Generics. Sudipta highlights the main reasons why Generics is important by illustrating practical examples and algorithms. Chapter 2 does a very good job of illustrating the different kinds of generic list by showing some real world examples which I've learned a lot =}. Basically it talks about generic containers and related methods and explained the details about types of generic lists and how to use them to solved real world problems. You will see in this chapter how simple lists can deliver amazing results avoiding any typecasting woes and boosting performance at the same time. It also covers how to create your own custom generic list-based containers. Chapter 3 takes a much more in depth look about .NET Generics Dictionary-based containers and talks about the types of Generic Associative Structures, how to create your own GAS and how to use them by illustrating practical examples. Chapter 4 talks about a brief introduction about LINQ (Language Integrated Query) and its cool features and showed the power of LINQ by presenting practical examples on how to use LINQ to query generic collections. This chapter has a lot of knowledge packed into and even myself was amazed about the real beauty LINQ for querying collections. Chapter 5 of this book covers how to monitor a changed using Observable Collections. By changed I meant "physical changes of elements being added in the Generic Collections. Chapter 6 covers Concurrent Collections and how this can make writing synchronized code easy. Chapter 7 and 8 discussed about data structures and algorithms by using some of the well known Generic Collections API such as the Wintellect's Power Collections and C5 APIs.This chapter highlights the API's available algorithms that are difficult to reproduce with the standard LINQ operators. The last two chapters on this book covers the different patterns, best practices and performance analysis to help you pick the correct Generic collection and algorithm for efficiently solving a problem. I was delighted on how the author presented the benchmarking for the performance analysis, it really helped me a lot finding the best generic containers to use in certain situations.
Overall I was really impressed on how Sudipta manage to apply his expertise and understanding about the subject to the content and style of his book. The book is very well constructed and each chapter covers the right amount of depth and by providing some real world examples with detailed explanations. Chapters are also completed with exercises and questions to test your growing knowledge about generic collections.
I really enjoyed reading this book and I have learned a lot of things about generics ~ I wish I could get a hard copy of this book =). My confusions as to what type of generic to use and what's the best for certain scenarios has been cleared and answered after reading this book. If you are a beginner or an intermediate programmer who want to know what .NET Generics is all about and why is it important or if you are an architect or a senior programmer who wants to define coding standards in your team then I highly recommend to get yourself a copy of it.