Recommended reading for developers

I was reminded this morning of an email that I sent to the junior developers on my team when they joined us. It is an overview of some of the development practices, patterns and products that they would get exposed to on our project. I have included it here as a reference collection for others. Principles and Patterns These are things that I often use and are still learning to use. SOLID – Originally put together by Bob Martin ( A g... [More]

Removing TeamBuild report noise

A patch came out in January which fixes the noise issue in TeamBuild reports. Build reports now only display one build step per project build by the solution after this patch is applied.

Class vs Struct

There is a lot of information around that discusses the differences between classes and structs. Unfortunately there isn't a lot of information available about when to use one over the other. MSDN has a good resource which provides guidance on how to choose between classes and structs. It starts by describing the differences between the two and then provides the following advice. Consider defining a structure instead of a class if instances of the type are small and common... [More]

Iterators and the yield statement

The yield statement is one of those C# statements that is really powerful but is either not understood or is unknown to most developers. Raymond Chen just posted a very good write up on how the compiler deals with the yield statement. The Old New Thing : The implementation of iterators in C# and its consequences (part 1) The great feature that the yield statement brings is delayed execution in iterations. If building a collection of items to iterate through is an expensive operation on either... [More]


A few months ago I did some research into dependency injection frameworks. One of the interesting features provided by many of the DI frameworks was the support for AOP. This is really interesting stuff and great for injecting logging and caching implementations without having to modify existing code. There are several AOP implementations around (Oren Eini identified seven in this post) and I have always wondered how some of them worked. Unfortunately I never got the time to research it. Using... [More]

Lying to WCF

There are cases when you need to transmit username/password credentials to WCF without transport security. The times that you should do this are rare because of the obvious security implications of sending credentials over the wire without encryption. One case where this is required is where hardware acceleration is used in a load balancer. The traffic between the load balancer and the client is encrypted, but the traffic between the load balancer and the service host is not. The issue here is t... [More]

Forcing SSL Gracefully on a Site

This is one to remember. Paul Litwin has posted about forcing SSL gracefully on a site using a post from Paul Wilson as a reference. I'll implement this when I set up some ssl sites that are publicly available.

Writing your own FxCop rules

Jason Kresowaty has posted an incredible amount of information about creating FxCop rules. I'll get to these one day. One rule I want to write is a rule that checks for properties on a DataContract that are not assigned the DataMember attribute.

IE7 fails to print on Vista

I keep coming across this problem. IE7 fails to print a document, asking the user to check that the address is correct, indicating that the address is a temporary file located in C:\Users\[Username]\AppData\Local\Temp\Low. Sometimes changing folder permissions works, but I have previously done that and this issue has popped up again. After doing another Google search and finding this forum post, running the following in the command line fixed the problem: icacls C:\Users\[Username]\AppData\Loca... [More]

Visual Studio 2005 Performance

A sure sign that I haven't blogged recently is that Windows Live Writer has dropped off my recent programs in the start menu. Anyway, I have seen this first set of content before (perhaps even blogged it), but it is worth including again as I have found another set of information for VS performance. Here are the goods: Speed up Visual Studio 2005 Make sure Visual Studio 2005 SP1 is installed. Turn off animation.Go to Tools | Options... [More]