Pass-through objects

Take a look at this class: public class ThingHandler : IThingHandler { private readonly IUnderlyingThingHandler _underlyingThingHandler; public ThingHandler(IUnderlyingThingHandler underlyingThingHandler) { _underlyingThingHandler = underlyingThingHandler; } public Thing GetThing(int parameter) { return _underlyingThingHandler.GetThing(parameter); } } I've seen variants of this everywhere I've worked. Sometimes it doesn't have the dependency injected, sometimes it catches and immediately rethrows »

ECS and containers with long bootstrap times

I've been playing with Amazon's EC2 container service (ECS) recently, and it's proving an impressive piece of kit. It's not quite one-click, but as a set of tools to automate putting Docker containers on machine instances, registering them with load balancers, and automatically handle connection draining and migration when you »

Why you shouldn't use InProc session state

By default, ASP.net ships with a couple of inbuilt session state providers. These are responsible for making sure that when you access HttpContext.Current.Session, you get back whatever you stored in it last. The default, and by far the easiest to work with, is something called InProc. This »

Repeating yourself

I think all good developers are aware of the basic axiom of "don't repeat yourself" - avoiding writing similar code over and over by making the effort to design and refactor what you've got so it handles all of your use cases. Where we're not so good is being able »

No (more) heroes

A good development team has no heroes. There are three common "heroic" feats in software development: Hacking in features in a fraction of the time it should have taken. Pulling all-night hacking sessions to get a delayed project out the door. Fixing a hack that exploded in production and took »