.NET Core Lifecycles
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...
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...
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...
Introduction
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.
.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.
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.
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...
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?
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 ...
Builds and debugging in Visual Studio - from novice to expert in one blog article
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...
Remote code execution vulnerability in .NET Core and effected versions of System.Text.Encodings.Web
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...
.NET 6 introduces new LINQ method to count the number of elements in a sequence more efficiently.
New to LINQ in .NET 6 - Easier to work with complex objects
In EF6, DbSet gained an additional protected internal constructor. So instead of creating lots of mocks, we mark the DbSet properties virtual, allowing FakeI...
A quick fix using session storage on the client.
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...
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...
So very happy to have received my certificate for CodeProject MVP 2019 MVA Most Valuable Author Award
Keeping your email private and out of GitHub commit history.
Keeping your email private and out of GitHub commit history.
Making it that little bit easier to keep up with security patching.
Remote code execution vulnerability in .NET Core and effected versions of System.Text.Encodings.Web
Reverse your approach to enforcing authentication on controllers, endpoints, actions and Razor Pages with global settings.
An alternative using WSL 2, where Docker Desktop is not available to you in Windows
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 interesting read about outsourcing and in-house capacity, relevant to us in IT.