Recommended Reading (Design Patterns and Frameworks)

August 17, 2009

Since I returned from London last week, after being unsuccessful with my job applications, I have been hard at it writing the codes. I build a new server, and compacted two servers on to this (the site should be a bit snappier now). I then decided to rewrite a project I first made about 6 years ago, in C# .NET using the joys of OO-design and managed code. After a few hours I then wondered how on earth, in an interview, I forgot the C# using statement can be used to define scope. Ddduuuuhhh.

I decided the project I am rewriting should be a good example piece of work to put in my portfolio, so decided to do it ‘the right way’. I thought I had better order some more reading material from Amazon:

  • Design Patterns (aka the Gang of Four book). Gamma, Helm, Johnson & Vlissides (1994).
    This is considered one of the de fecto standards on OO-design (well part of it anyway). The book itself provides a reference to common design patterns and explanations of how they should be used and the consequences. Modern frameworks encapsulate most of the functionality described (who doesn’t provide an iterator nowadays?), so reading it through now, it can seem a bit dated. Either way, it is still good to know how these things work under the hood, and for that the book is a great example.

  • Framework Design Guidelines (2nd edition). Cwalina, Abrams (2009).
    The book teaches the guidelines and best practices that have been used to create the .NET framework. It focuses on every aspect of designing a good framework including usability for the end user and performance. If you are doing any sort of application development in .NET (basically anyone except you pesky VB.NET and ASP.NET programmers) you are writing a framework, and as such should give this a read. The latest edition has been fully updated for the .NET 3.5 (so the .NET 4 version should arrive in 2011?). If you don’t know the basics of .NET this book isn’t going to help you, but it may help reinforce what you know and help you move to the next level.

I will have some updates of the project I am working on soon, so hang tight, and get reading! If not, get playing the game my project is to do with, YsFlight.