Beware “RunOnStartup” in Azure Functions – a serverless horror story

Everyone loves a good technology horror story, right? The gorier the better in my experience. Well, over the last weekend we had an, um, “incident“. To my mind, it’s got all the ingredients of an excellent example of the genre: a small mistake, complicated conditions, and a big financial hit (mercifully averted). Sound like your kind of thing? Read on. I hope I do it justice…

Continue reading

Getting started with Blazor – my red pill moment

I’ve recently blogged about how excited I am by the promise of Blazor. Well, I’ve built my first Blazor app and, having tried it, I’m no less excited. There are still plenty of rough edges (which I talk about below), but it fundamentally works. In this post, I’ll try to outline the pitfalls as best as I can, in the hope that others find it useful. Please don’t construe anything I write as a criticism of the Blazor team – what they’ve done is already game-changing.

Continue reading

Blazor and .NET Core hosting – the future’s bright

In a past life, I was a web developer. In this post, I’d like to take an outsiders perspective on a couple of developments that I think will be hugely disruptive in the coming years. The first of these is .NET Core making it possible to run .NET websites on cheap hosting. The second is Blazor, which promises to let us use .NET for front-end web scripting – replacing Javascript. This post is a bit more soapbox-y than usual, so bear with me!

Continue reading

Testing without compromise using InternalsVisibleTo

Have you ever wanted to test the behaviour of a method, without making it part of your public API? Have you ever been forced to choose between compromising on the encapsulation of your business logic, and ensuring that it behaves as expected? Allow me to introduce the InternalsVisibleTo attribute! In this post, we’ll look at what this lets you do, but we’ll also touch briefly on the debate surrounding its use.

Continue reading