An experiment with automatic tests

I spent some time working with some code recently, which had some annoying habits of failing oddly in scenarios where nulls got passed into constructors. While I was trying to work around some of these issues, it struck me that tests for parameter handling for constructors are one of those annoying things that tend to make unit testing frustrating. They’re annoying boiler-plate to write if you need them, and then a constructor signature changes, you end up with a lot of make-work test changes to do.

So as an exercise in “learning something new”, wondered whether I could automate them in a reasonable way… Continue reading


Fun with broken SQL Replication

Recently I’ve spent some time debugging some issues with a client site. One problem that came up during this work (which, sadly wasn’t actually the problem I was looking for) was a set of errors from SQL Replication appearing in the Sitecore logs. In keeping with my previous ranting about keeping your Sitecore logs as error free as possible I spent some time working out how to solve this.

Since I’d not looked at databases at this sort of level for some considerable time, I’m writing down some notes for my future self, next time I have to worry about this sort of thing… Continue reading

So you’re thinking about an upgrade?

I’ve been involved in a few discussions about the scope of projects to upgrade existing Sitecore instances in the last few weeks, and quite a lot of that discussion has focused around the “development environment” aspects of the upgrade work. So I thought I would write down some of the things that have come up in my conversations. This isn’t supposed to be a “how-to” guide, or a complete list of everything you need to worry about. But hopefully this post will provoke thought and discussions on some important topics around what might need to change – especially if you’ve not done an upgrade before… Continue reading

Games that appeal to the programmer in me

It’s school holidays as I type this, which means I’ve been out of the office keeping kids entertained rather than doing anything interesting with code. But all is not lost – because it leaves time for playing some games instead. That reminded me of a conversation I had at Sitecore’s Symposium last year about “games I like because they appeal to me as a programmer” – so I thought I’d make a list of the stuff I’ve enjoyed wasting time with in the last few years (When I’ve not been playing Minecraft or Terraria with my eldest), in case they appeal to anyone else… Continue reading

It’s never the runtime… (Except when it is)

BugSomething I’ve learned over the course of many years working in IT is that when you hit a difficult to explain problem it’s very easy to say “it’s the runtime’s fault!” or “that’s a compiler bug” to cover for the lack of explanation for your problem. The vast majority of the time, it’s not true though. It’s just a subtler bug in your own work that you can’t see yet.

Every so often, however, it is true. And it turns out the issue I discussed the other week about Sitecore rendering a Razor error when you asked for a media item may well be an example of this. Continue reading