GRASP Patterns

These notes are taken from Craig Larman’s brilliant book “Applying UML And Patterns”. There is so much information in this book, you really need to work through it in its entirety. Still, it’s good to have a brief refresher of some key points. I hope you may find these notes useful. GRASP Patterns General Responsibility […]

Class Diagrams

Every now and then I’m tasked to do something which requires me to quickly jog my memory. This time it was a class diagram, and Martin Fowler’s UML Distilled was so helpful that I’ve decided to list here some of the important points it raises, for future reference. I’ve added a few of my own […]


One thing I love about using C# is reflection, it adds another paradigm to the toolkit. Recently, I revisited my old friend Activator.CreateInstance which is perfect for scenarios where you want to use generic code to create and initialize specific types of objects. Basic Example Some time ago, I wrote a simple application which plugs […]

Troubleshooting WCF Performance

This is a re-post from 2011 for reference purposes. A small configuration setting can make a big difference. I’m currently working on a C# test application which dispatches real units of work through an Oracle Service Bus (OSB) to C++ services on an AIX box. The application uses the Supervisor Pattern where a single dispatcher, […]

Doxygen for C# and C++

Doxygen is a cross platform open source code documentation tool which I’ve used for both Visual C++ and C# .NET projects. It produces awesome documentation and is very easy to use. Configuration is straight forward using DoxyWizard. Doxygen can be configured to use Graphviz to produce call and dependency graphs. After installing Graphiz you’ll need […]

Testing Visual C++ in NUnit

This is a re-post from an old blog I had dated 2010, it has some useful information: Recently I have been busy working on a large unmanaged Visual C++ project and I needed to introduce unit testing. I decided to create a Managed C++/CLI library with a few assert wrappers, so I could drive the […]

Extreme Programming Explained

This morning I had the opportunity to read Kent Beck’s delightful work, Extreme Programming Explained 2nd Edition. This is a book by a man who has been in the trenches and has reflected upon his experience for the benefit of all involved in application delivery. His concern for people is evident throughout, and inspiring. An […]

Object-Oriented Design Heuristics

I took the following notes whilst studying Arthur J. Riel’s book on OOD best practices, I hope they may be useful to you. This is a good book, definitely worth a place on any developer’s bookshelf. It is a bit dated, but much of the advice is solid, and you can see the seeds of […]

Designing Object-Oriented Software

The following is a collection of notes taken from Designing Object-Oriented Software. This is a good book about OOD, but a bit dated. The follow up book is more interesting, Object Design, which goes more into object roles, responsibilities and collaborations. Still there is wisdom, in particular I liked the emphasis on objects as agents […]

Delphi in VS Code

The Delphi Extension Pack is an excellent extension for Visual Studio Code. It installs a bunch of useful components to help make the Delphi developer right at home. It’s really neat, you even get helpful error information if compilation fails: Before you install it, however, see the instructions to install Global here. Once Global is […]