I was invited to chat with the Packet Pushers folk on ‘OpenTelemetry – Getting From Visibility To Observability With Ben Hall’. Looks like I pushed a show th...
Posts by Year
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...
The observability problem - Why is the system exhibiting this behaviour?
An interesting read about outsourcing and in-house capacity, relevant to us in IT.
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...
An alternative using WSL 2, where Docker Desktop is not available to you in Windows
.NET 6 introduces new LINQ method to count the number of elements in a sequence more efficiently.
.NET 6 introduces new LINQ overloads that allows us to specify default values more succinctly.
New to LINQ in .NET 6 - Easier to work with complex objects
Useful things you may have missed in 2021 Q2 from the .NET community.
Useful things you may have missed in 2021 Q1 from the .NET community.
Reverse your approach to enforcing authentication on controllers, endpoints, actions and Razor Pages with global settings.
Remote code execution vulnerability in .NET Core and effected versions of System.Text.Encodings.Web
A reminder to be cautious and consider the warning window that comes up for Visual Studio projects from external sources.
Making it that little bit easier to keep up with security patching.
Keeping your email private and out of GitHub commit history.
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...
So very happy to have received my certificate for CodeProject MVP 2019 MVA Most Valuable Author Award
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 ...
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...
Know Your Garbage Collection Options. An under-utilised setting that can offer substantial performance gains.
Garbage collection is so often at the root (excuse the pun) of many performance problems, very often because of misunderstanding, so please do set aside time...
Builds and debugging in Visual Studio - from novice to expert in one blog article
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...
On a recent project I experienced first-hand, how the .NET MemoryCache class, when used with either absolute or sliding expiration, can produce some unpredic...
Another Problem with FileSystemWatcher.
A robust solution for FileSystemWatcher firing events multiple times.
NotifyFilters enumeration explained.
We had a business need for the actual print size of an image in millimetres.
A quick fix using session storage on the client.
In EF6, DbSet gained an additional protected internal constructor. So instead of creating lots of mocks, we mark the DbSet properties virtual, allowing FakeI...