Amazon.com Customer Reviews
Useful and unique information, but obtuse writing style - Review written on November 24, 2006
Rating: 3 out of 5
5 customers found this review helpful.
I am currently slogging my way through this text, and while the experience has been instructive, it has not been pleasurable.
The book has great value in that it demonstrates design patterns using C# code, and it includes other useful information such as a discussion of C# delegates and interfaces. I would recommend it to developers who are programming in C# and want to become better at applying design patterns in that language. It's not the best introduction to design patterns for beginners - I think Gamma's book is better for that. Also, it's not the best intro to C#. This is a book that is targeted to intermediate/advanced programmers.
Regardless of skill level, it is a difficult read. As others have mentioned, the practice of introducing new information in the form of quizzes on virtually every page is very obnoxious, requiring one to constantly refer to the material at the back of the book in order to follow the narrative in the text. Furthermore, the sentence style is terse, often lacking modifiers such as adjectives and adverbs, so that one has to infer meaning through context without really being sure of what the author meant.
Concise, Readable, and Specific - Review written on April 13, 2005
Rating: 5 out of 5
24 customers found this review helpful, 2 did not.
I really liked this book.
My background was in VB6 and classic ASP, until just over two years ago. I was introduced to C# and I've never looked back.
Reading about C# best practices led me into design patterns and that naturally led me to this book. It was the first book I've read on patterns (aside from a few articles online.)
Concise - Metsker doesn't waste my time with unnecessary text (such as lame jokes or repetitive text). If I don't get something the first time, I go back and read it over.
Readable - The information in the book is dense, and there are certainly sections that may be confusing initially. However the book thoughtfully organized, the spacing and layout are comfortable, the author's voice reminiscent of a friendly college professor
Specific - His implementation of patterns take advantage of C# specific features. This is important, and I would not have recognized this without the input of C++ developer.
In addition, this book helped to clarify a number of Object Oriented and Component Oriented concepts (such as delegates, interfaces, and iterators). Likewise, it shed light on the .NET FCL (streams and enumerators)
Regarding the exercises in the book; I was irritated with them at first, however I found that they were really useful for making the concepts stick once I quit being lazy. On the flipside, the book is quite useable even if you skip over them.
The only real negative is the metaphor of the fireworks company. It's not intuitive and it takes a while to sink in.
"Challenges" ruin this book for experienced developers - Review written on March 29, 2005
Rating: 1 out of 5
39 customers found this review helpful, 12 did not.
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.
It helps me to know how C# implemens Design Pattens - Review written on December 04, 2004
Rating: 5 out of 5
9 customers found this review helpful, 3 did not.
Let's get real. When talking about C# and Design Patterns, there are so many people with different levels and areas of experties. Some knows VB.NET well and nothing about C# and Design Patterns, some knows Java and Design Patterns well but nothing about C#, some knows nothing well, ...
So, who will benefit from this book most?
For people knows about Design Patterns but not C# and .NET, you will learn how C# implements design patterns.
For people knows .NET but not Design Patterns, you will find this book more approachable than GoF. You can use this book as a supplement or introductory book for GoF's discussion.
For people knows nothing about .NEt and Design Patterns, this is probably not the book you should pick. Learn some .NET and OO stuff.
For me, I did some Java and design patterns in the paste. After reading this book, I have a deeper understanding of Design patterns, while I gain more knowledge of C#.
So, if you think you need to know more about design patterns, I would recommend this book without reservation.
Design Patterns in C#: A great book! - Review written on June 05, 2004
Rating: 5 out of 5
6 customers found this review helpful, 4 did not.
This book is very well and clearly written, with to the point examples and figures.
I enjoyed reading it, and even more enjoyed learning new patterns, and recognising some of the patterns I already did use (though without knowing it had a name).
The book contains lots of "challenges" or questions, and if you try to answer them, you really get to understand the pro's and cons of every patterns... Of course, it contains all the answers, so you can check if you're thinking the right thing.
Steve, please continue writing about the other 77 patterns :)
Bootstrap your fluency in C# - Review written on May 31, 2004
Rating: 4 out of 5
13 customers found this review helpful, 1 did not.
C# is still a relatively new language. Certainly younger than Java or C++, which are the 2 most common OO languages. So chances are, some people coming to this book are still clumsy in C#. But I think it is also reasonable to say that if you are contemplating ANY book on design patterns, that you are fluent in at least one language.
Strictly, a purist might say that design patterns do not need to refer to a specific language. They are a level above code. But pragmatically, to understand them, it helps to instantiate examples in a language.
All this means that the book is good for an experienced developer who is still new to C#. You understand why design patterns are important. You can use the book to bootstrap your fluency in C# by studying the examples and tackling the supplied problems.
If you are indeed an experienced developer in another language, you might find the narrative more appealing than that in a Dummies-type book. The level of discussion that Metsker supplies is more advanced and challenging. More interesting.
Hey! He also gives answers to the problems.
A Pragmatic Approach to Design Patterns - Review written on May 01, 2004
Rating: 5 out of 5
8 customers found this review helpful.
I've read several books on design patterns (including the classic "Gang of Four" work) and this is by far the best I've seen. What is unique about this book is its concise focus on the practical application of each of the 23 classic design patterns. The examples are short and can be written and tested quickly, yet cover real world programming issues that are encountered every day. "Challenges" (with solutions) are interspersed throughout the text to reinforce the concepts and help you bridge the gap between the specific example and a more general understanding.
If you've been fascinated with the elegance and power of design patterns, yet sometimes struggle with exactly how and where to apply them, then the "light" will go on after reading this book.
Get this book first, then grab the classic "Gang of Four" work. You'll find your understanding of both books and design patterns in general greatly enhanced.