Guy Harwood

UK based developer
Solution refactoring with NDepend and Resharper
Recently I've been tackling some improvements to a commercial product that I developed over 6 years ago. Some of the code I came across wasn't pretty, so I put NDepend and Resharper to task. Read the full article on my personal blog
CSS Agent for ASP.NET

Came across this just now via twitter -

Havent tried it out yet, but sounds promising and very very useful.

Anyone given it a run yet?

ASP.Net Design Patterns Book Review
Design Patters Book Cover

 I've had this book for quite some time now and it definitely deserves a long overdue review.  I was looking for something that gave an up to date insight on how real applications are built using some of the most popular and proven patterns.  There are too many books around that go head first into one specific way of doing things, and it quickly becomes apparent that you cant apply a lot of the techniques to real world situations.  This book is not one of those. 

Scott provides an introduction to some popular and common design patterns (at which point you will probably find yourself saying 'oh yeah, i used that in <insert your previous project here>'), how they are categorized and most importantly how to read, understand and apply them.  He then moves swiftly on to show how these can be used to piece together a rich layered framework on which to build an application.  There are various examples of how the various layers interact with each other, all in a very well explained manner, making it easy to understand for developers at any level. 

I made the mistake of taking this book into the office, and it has been the source of many conversations since.

Highly recommended.


Posted: Jan 20 2011, 12:37 PM by Guy Harwood | with 8 comment(s) |
Filed under: , ,
NDepend - Code Analysis and Refactoring

NDepend is a code analysis tool for Visual Studio, allowing you to measure code quality using various techniques included within the software package that plugs quite neatly into Visual Studio.


I have been working on a complete refactoring of for the last few months, moving from a somewhat inconsistent Linq2SQL set up to a cleaner stack consisting of view models, UI Service layer, Domain Model and Generic Repository with EF4 sitting underneath it all.  One thing that is never easy is to gain an understanding of just how tied up your code is, and what approach you need to take to clean it all up.  Resharper is always my first tool of choice, but what to do when you have some ad-hoc question in your mind about what state of affairs your solution is currently in?  NDepend fills this gap rather neatly, allowing you to write custom queries using Code Query Language (CQL) to shine a light on those dark areas of code within your solution. 


My favourite part of NDepend has to be the dependency Graph.  It provides a global overview of ‘whos using who’ and is really useful when your trying to break apart that spaghetti mess you promised yourself was just a prototype.  This works hand in hand with the dependency matrix, which is sometimes easier to reference in the muddiest of waters.

If i were to change one thing about it, it would be to make the initial introduction a little easier.  It can be a touch difficult to get your head around at first, but if you take the time out to watch the introductory video, you will soon be on your feet.

What are you waiting for?  Get that spaghetti code out and let NDepend have it for breakfast.

The requested operation cannot be performed on a file with a user-mapped section open when performing a subversion commit

This one has got me a few times. 

What it means is that the files you are trying to commit are in use by another application OR the repository files at the server end are in use by another application.

9 times out of 10 that application is your anti virus software.

Putting a folder exclusion on your anti virus so it doesn't look at your visual studio projects folder or your subversion repositories folder should solve the issue.

It’s the first thing you should check anyway!

Application Lifecycle Management with Visual Studio 2010 – Wrox Book

After running with a somewhat disconnected set of tools (vs 2008, Ontime, sharepoint 2007) for managing our projects we decided to make the move to Team Foundation Server 2010.  With limited coverage of the product available online i went in search of a book and found this…

0470484268 View this book on the Wrox website

I must point out that i have only read 10 of the 26 chapters so far, mainly the ones that cover source code control, work item tracking and database projects.  This enables our dev team to get familiar with it before switching project management over at a future date.

Needless to say i am very impressed with the detail it provides, answering pretty much every question i had about TFS so far.  I'm looking forward to digging into the sections on testing, code analysis and architecture.

Highly recommended.

Posted: Jun 10 2010, 02:26 PM by Guy Harwood | with 1 comment(s)
Filed under: , ,
TinyFluidGrid – a clean and lightweight css framework

I've been using the 960 Grid system for a while on some of my personal projects and if like me you are no css ninja its convenient for sidestepping the usual nightmare of a good cross browser layout, and allows you to move on to the nitty gritty code and functionality.

I just stumbled across a new layout generator that looks rather snazzy and has the functionality to back it up.  TinyFluidGrid generates exactly that – a tiny fluid grid!

Worth a look.

Posted: Jun 03 2010, 02:42 PM by Guy Harwood | with 8 comment(s)
Filed under: , , ,
List of Countries in Excel Spreadsheet for Drop Down List

Attached to this post is an excel spreadsheet i use for populating drop down lists for choosing countries.

Personally i prefer to have these in a table, and fill the drop down from there, but i have also included formatted markup for the list items that can be copied directly between the drop down list markup.


Download the Excel file here

IIS7 Failure after installing Advanced Logging

I came across a nasty issue when i installed the Advanced Logging feature for IIS7 via the Web Platform Installer on my Windows 2008 Server.  Basically, after installation and reboot none of my sites were working and returned 503 – Internal Server Error.

Snooping around in the Event Viewer i found the following error reported by the W3SVC…

The Module DLL C:\Program Files\IIS\Advanced Logging\AdvancedLoggingModule.dll failed to load.  
The data is the error

Even though the DLLs are there, it is not picking them up.

I managed to find a fix via google that involves editing the configapplicationHost.config file in the C:\Windows\System32\inetsrv\ directory.

1.  Copy AdvancedLoggingModule.dll and ClientLoggingHandler.dll to %windir%\system32 (C:\windows\system32  on a default setup)

2.  Locate the file C:\Windows\System32\inetsrv\configapplicationHost.config and make a backup, then open it in a text editor (i recommend Notepad++).

3.  Search for the following 2 lines (mine are located on line 570)..

<add name="ClientLoggingHandler" image="%ProgramFiles%\IIS\Advanced Logging\ClientLoggingHandler.dll" />
<add name="AdvancedLoggingModule" image="%ProgramFiles%\IIS\Advanced Logging\AdvancedLoggingModule.dll" />

and alter them to….

<add name="ClientLoggingHandler" image="%windir%\system32\ClientLoggingHandler.dll" />
<add name="AdvancedLoggingModule" image="%windir%\system32\AdvancedLoggingModule.dll" />

4. Open a command prompt and run iisReset.

5. All sites should now be working.

jTouch - jQuery cheatsheet for your iPhone

I stumbled across this neat little iPhone app/site while checking out the jQuery cheatsheet made available by

Its called jTouch and gives you the jQuery API (currently only v1.2.3) as a nice browsable app on your iPhone...

Picture 001  Picture 002  Picture 003

kick it on

Posted: Dec 17 2008, 12:57 PM by Guy Harwood | with 8 comment(s) |
Filed under: , ,
More Posts Next page »