CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

David Hayden [MVP C#]

         .NET Tutorials, Patterns, and Practices

OOP and Design Pattern Resources

 I received an email message via this blog for some help in identifying good recources on OOP and Design Patterns for those new to the concepts.  It has been awhile since I browsed the Internet for such resources and read new books specific to the subject, so I thought I would list resources that I have used in the past and invite others to add to the list via the comments.  After a couple of weeks or so, I will rewrite a second post with a complete list of everyone's feedback that will be useful to everyone.  I really enjoy these topics, so I am interested in what people might suggest.

Books

I have 5 books that really helped me with OOP and Design Patterns, which I believe are still relevant today:

  1. Applying UML and Patterns 3rd Edition by Craig Larman - This is a textbook used in classes that discusses assigning responsibilities to objects using GRASP ( General Responsibility Assignment Software Patterns ).  It has tons of information on OOP, Design Patterns, and Agile Development.  I absolutely love this book.  Good beginner book.
  2. Agile Software Development Principles, Patterns, and Practices by Robert Martin - The OOP concepts presented in this book are fantastic, but the examples in Java and C++ leave little to be desired.  That being said, if you can look beyond or through the code to capture the essence of the principles themselves, this is a great book.  More of an intermediate developer book.  A good stretch for a beginner.
  3. Design Patterns in C# by Steven Metsker - At the time I bought this book, I was just happy to find a design pattern book with only C# examples :)  Most design pattern books were in Java and C++ and I wasn't skilled enough to grasp the material without seeing it in my preferred language.  Steven does a great job of going through all the important design patterns in C#, although I could do without so many examples involving rockets :)  A solid intermediate developer book and a good stretch for beginners.
  4. Patterns of Enterprise Application Architecture by Martin Fowler - Lives up to all the hype surrounding it.  I always find myself referring to this book, because it is a catalog of patterns like Design Patterns in C#, which makes it easy to get to the information you need quickly.  Now if he would only come out with C# and VB.NET versions.  Good for the intermediate developer.
  5. Domain Driven Design by Eric Evans - Great book that taught me a lot about domain modeling, n-layer design, and design patterns, but it was way past my grasp when I first bought it.  Regretted the purchase until I picked it up 8 months later after reading a few other books and then went "Aha!"  Clearly not a beginner book in my opinion, but a good book to read after you get a more solid grasp of the fundamentals and want to challenge yourself.  Solid intermediate developer book.

Those are all the books I have on the subject, and in my opinion, I feel lucky that I picked such good ones.  Aside from Applying UML and Patterns by Craig Larman, the others might be a bit of a stretch for developers new to OOP and design patterns, but they are all good nonetheless and I recommend them at some point.  I have heard good things about other books, but I will refrain from mentioning them here as I don't have any personal experience with them.  Hopefully someone else will mention a good book on the subject.

 

Websites

List of OOP and Design Pattern related websites I remember from the past:

  1. Data and Object Factory - A list of common design patterns inspired by GoF ( http://www.dofactory.com/Patterns/Patterns.aspx ).
  2. Pattern Share - Bringing together software patterns from different authors ( http://www.patternshare.org/ ).
  3. Object Mentor - Various OOP articles based on Agile Software Development book mentioned above ( http://www.objectmentor.com/resources/listArticles?key=topic&topic=Design%20Principles )
  4. POEAA Catalog Online - ( http://www.martinfowler.com/eaaCatalog/index.html )

 

I am sure there are others.  Scott Ambler comes to mind for various data access patterns but after a bit of investigation I couldn't find a good index of resources for him.

 

Articles

I have done a few chapter by chapter book reviews on a couple of books mentioned above that may be of help:

 

Raymond has a number of great articles:

 

Search CodeBetter.com on OOP and Design Patterns for related articles.

I know there has to be a number of great OOP and design pattern articles written by other people.  I just haven't looked around in awhile.

 

Conclusion

If you know of any great resources on OOP and Design Patterns that can help new developers as well as others, please add a comment so I can collect them and repost a full compilation later.

Hope this helps either way.

 



Comments

Lorenzo said:

I feel there's no good example of MVC in ASP .NET could you explain how you would achieve what Fowler describes in POEAA which has a very good implementation IMHO in Ruby On Rails?
# January 18, 2006 7:45 PM

Raymond Lewallen said:

FYI, the 4 major principles article is a compilation of the other 4 articles you listed all combined together for easy viewing.
# January 18, 2006 9:33 PM

Steve said:

A good book for people new to objects is Object Thinking by Dr. David West (http://www.microsoft.com/MSPress/books/6820.asp). There is very little code, but it is a good book to get you thinking different about objects.
# January 18, 2006 9:48 PM

Don Draper said:

"Head First Design Patterns" is a great intro to patterns that finally turned the light on for me, and led me to discover the Fowler and Larman books you mention. I'll also add Scott Ambler's "Object Primer" (http://www.agilemodeling.com/) as a great resource for understanding how to come up with a model (recent edition also includes touch of C#).
# January 19, 2006 12:58 AM

Bilal Haidar said:

That was a great post Dave, thanks a lot.

Regards
# January 19, 2006 1:59 AM

Jeremy D. Miller said:

Try the Enterprise Solution Patterns for .Net guide at http://msdn.microsoft.com/practices/Topics/patterns/default.aspx?pull=/library/en-us/dnpatterns/html/esp.asp for as a source for Fowler's PEAA MVC patterns applied specifically to .Net.

# January 19, 2006 10:53 AM

Sam said:

"Head First Design Patterns".
This is by FAR the most fun development related book I've ever read. And its the first time the design patterns have become clear to me. The GoF book is brilliant but to someone new to patterns its scary. This book, however, indroduces the patterns as problems and then takes you along a path of discovery to using a pattern to solve the problem.
# January 20, 2006 12:31 AM

Harry Nieboer said:

# January 31, 2006 5:24 PM

David Hayden [MVP C#] said:

Framework Design Guidelines - Conventions, Idioms, and Patterns for Reusable .NET Libraries is one...
# February 5, 2006 5:09 PM

David Hayden [MVP C#] said:

Jason Haley points to a really nice introduction to using NHibernate with ASP.NET, called NHibernate...
# March 12, 2006 10:39 AM

Jeremy D. Miller -- The Shade Tree Developer said:

One of my colleagues asked me to demonstrate and explain six patterns for folks with little or no exposure...
# April 11, 2006 4:12 PM

Nblog said:

Kolejna porcja linków związanych z wzorcami projektowymi. Nie wszystkie jeszcze zdążyłem przeczytać,...
# June 5, 2006 5:03 PM
Check out Devlicio.us!

This Blog

Syndication

News

CodeBetter.Com Home