3/29/2005

Design Patterns In C#

Sections: Books — Posted @ 11:29 am

Design Patterns In C#The following paragraphs are a cross-post of a computer book review I wrote for Amazon. For those of you who have no interest in computer programming books, I recommend not reading the following paragraphs, or else you might slip into a coma due to boredom.

I had high expectations of “Design Patterns In C#” by Steven John Metsker but unfortunately the book didn’t live up to them. This book is part of the “Software Patterns Series” of books that was started off by the classic “Design Patterns” by “The Gang of Four”(GoF), as they are known. That book is amazing and should be part of every software developer’s library.

Metsker’s book assumes the reader has studied the GoF book and is knowledgeable in the basic 23 design patterns covered in it. Therefore, this book is intended to be a supplement to the original classic, expanding on it to show implementations in C# and leaving the in-depth rational of the design patterns to be described in the original. I feel like this was the correct approach to take because the original masterpiece does such a good job at introducing the subject of design patterns and giving the reader a solid foundation.

My main complaint about “Design Patterns In C#” is the “challenges” this book includes throughout the text. I have no problem with exercises for the reader to try but the way this book presents them makes the actual text useless as a reference.

In many chapters, the major UML diagram and/or coding example showing how to implement a given design pattern is left with missing parts for the reader to fill in. This book’s audience is experienced developers, who are looking for the author’s opinion on the proper ways to implement a given design pattern using all the features of C#. Because of the “challenges” sections, the author is leaving out the exact parts of the book the developer needs. It is very frustrating to have to consult an appendix every couple of pages before making sense of the text following a “challenge”. This book should have left out the “challenges” and instead imitated the original “Design Patterns” book by becoming a no nonsense reference for software architects.

My other, smaller, complaint about this book is that it uses one large source code base for its examples instead of giving the reader a separate, small example for every pattern. If the author had chosen to use a small example for each chapter then they would have remained more independent of each other and easier to use as a reference. But, as I covered above, the author pretty much killed any chance of this book being a useful reference.

This book wasn’t all bad. The author did do a good job of showing which specific features of the C# language, such as interfaces, applied well to the various design patterns and made their implementations cleaner. I also liked that the author used UML instead of the older OMT used by the GoF book. To be fair to the original book, UML was not standardized at the time of its writing. Overall, I would recommend against purchasing “Design Patterns In C#” because of its “challenges” sections.

The URI to TrackBack this entry is: http://www.particlestorm.net/2005/03/29/design-patterns-in-c/trackback/

No Comments




Leave a comment

(required)

(required - will not be published)