Posts by Year


OpenTelemetry, The Missing Ingredient

9 minute read

At its core, OpenTelemetry (OTel) is a vendor-neutral standard for telemetry. But it also provides a complete end-to-end implementation for generating, emitt...

GitOps with Terraform, GitHub and Azure

1 minute read

A 3-part series published on CodeProject that demonstrates how to construct a complete end-to-end GitOps workflow using Terraform plans, GitHub, GitHub Actio...

Back to Top ↑


Trusting Visual Studio Projects

3 minute read

A reminder to be cautious and consider the warning window that comes up for Visual Studio projects from external sources.

Back to Top ↑


.NET Core Lifecycles

9 minute read

I get regular queries about decisions on .NET Core versions so I have shared a snapshot of the key points to help you make an informed decision here. Remembe...

CodeProject MVP 2019 Award

less than 1 minute read

So very happy to have received my certificate for CodeProject MVP 2019 MVA Most Valuable Author Award

Back to Top ↑


A Re-Introduction to C# References

16 minute read

Reviewing what we need to know pre- and post- C# 7 features about the type system and references in particular, while correcting common misconceptions along ...

.NET Performance Tip – Benchmarking

2 minute read

Micro-optimising has a bad reputation although I’d argue that knowledge of such things can help you write better code. We should also make the distinction cl...

.NET Performance Tip

1 minute read

Know Your Garbage Collection Options. An under-utilised setting that can offer substantial performance gains.

C# Async/Await

3 minute read

Async/await has been part of C# since C# 5.0 yet many developers have yet to explore how it works under the covers, which I would recommend for any syntactic...

Back to Top ↑


Back to Top ↑


Using FakeItEasy with Entity Framework 6

4 minute read

In EF6, DbSet gained an additional protected internal constructor. So instead of creating lots of mocks, we mark the DbSet properties virtual, allowing FakeI...

Back to Top ↑