08 December 2023
.Net Blazor SSR A bit of a history of Blazor and the criticisms its had along the way and its response to them, the latest of which is static site rendering. They still haven’t convinced me. I st...
.Net Blazor SSR A bit of a history of Blazor and the criticisms its had along the way and its response to them, the latest of which is static site rendering. They still haven’t convinced me. I st...
Avoiding flaky tests with TimeProvider and ITimer Fixing the age-old problem of testing code that uses time. C# 8 introduces an abstract class TimeProvider that can be used to make code testable. ...
Feature Flags 101: A Guide for ASP.NET Core Developers This makes feature flags look easy. The examples define them globally in appsettings file, but I assume it could be defined anywhere in confi...
A couple of articles on interesting subjects with way too much detail for me to read fully. How to build a IP Geolocation Database from Scratch UK air traffic control meltdown
Log Formatters in C# Good description of the standard log formatters in .Net, and how to configure them. Cancelling cancellation tokens He’s suggesting a way to inject the cancellation token int...
Using StringBuilder To Replace Values This is a clever idea: instead of using string.Replace() to replace part of a string, use StringBuilder. It’s faster, and more importantly, it creates much le...
BingBang: AAD misconfiguration An AAD configuration flaw with a catchy name. Also a catchy name for a class of flaws: “Shared Responsibility confusion”. The Modern Guide To OAuth A very long art...
Understanding SameSite cookies Everything you wanted to know about same-site, same-origin and cross-site cookies. Git Merge – The Definitive Guide Too much detail about how git merge works. The ...
How Async/Await Really Works in C# Very detailed history of async programming in C#, which has always been hard to get right. This describes the problems, the solutions, and everything in between....
Converting Strings to .NET Objects – IParsable and ISpanParsable TBH I didn’t yet quite understand the purpose of this, but it’s good to know that it’s there when I find myself with this problem. ...