Recent Posts

Gobie DevLog 4 - Bringing It All Together

13 minute read

I’m very happy to say that the last of the generation capabilities I want to offer in the initial release of Gobie has been added to the alpha release.

Gobie DevLog 2 - Simple C# Source Generation

2 minute read

In the last post about Gobie I showed the first proof of concept. Today we have a bit of an expanded feature set to show which allows for simpler template de...

Gobie DevLog 1 - Simple C# Source Generation

4 minute read

In the last post about Gobie I outlined how a source generator which relies on user defined templates might work. In this post, I will briefly cover a proof ...

Simplifying C# Source Generation

5 minute read

I have been thinking a lot about source generation in recent weeks. Its promise of saving developers from some redundant coding is challenged by its complexi...

2021 July Reading List

3 minute read

I decided to try taking a bit of inspiration from the Jo Walton’s Reading List series, who publicly keeps notes on books she has read. I won’t be tracking ev...

C# Source Generators - File New to NuGet

14 minute read

C# Source Generators are an exciting feature to allow automatic generation of code. Generators have been out of preview for several months, but getting start...

Branched Models and EFCore Performance

4 minute read

When we have a branched model like the one shown here that needs to be loaded by Entity Framework Core all at once, we need to consider the size of the model...

Easily Compare any SQL Server Queries or Tables

5 minute read

I’m excited to announce that this last week I have released a new project (source code), which is hosted here. Its a free utility that generates SQL Server s...

Snippets to Fix FxCop CA1062

3 minute read

If you run FxCop you may frequently run into CA1062: Validate arguments of public methods. Below are three snippets to make writing this boiler plate a bit e...

System Versioning 4 - Avoid No-Op Updates

1 minute read

When updating a row of data, SQL Server does not check if the new values and the old values are the same before performing the update. This often isn’t a con...

System Versioning 2 - Concurrent Transactions

5 minute read

In the second installment of this series we are going to look at how concurrent transactions behave differently with System Versioned tables, compared to sta...

System Versioning 1 - When is SysStart

4 minute read

System versioning was introduced in SQL Server 2016. Its an excellent option for logging changes to data in sensitive systems and as with all complex systems...