RSSAmplifier

Blog

Steve Gordon – Code with Steve

Adventures in .NET

stevejgordon.co.ukRSS feed ↗10 posts

Latest posts

Encrypting Properties with System.Text.Json and a TypeInfoResolver Modifier (Part 2)

In the previous post, we discussed the foundations for automatic data encryption of properties during serialisation using System.Text.Json. In this post, we’ll continue our journey, moving toward removing our fake “encryption” and replacing it with actual encryption. Along the way we’ll establish some abstractions and a design that allows us to develop flexible encryption and […] The post…

The Grand Mystery of the Missing 18 Bytes

In this brief blog post, I will share the tale of the mystery surrounding the missing 18 bytes. While preparing a new conference session on practical application performance optimisation, I reviewed my demo, which includes taking memory profiles as well as benchmarks during the performance optimisation loop. I like to be prepared for any and […] The post The Grand Mystery of the Missing 18 Bytes…

Talk: Application Performance Optimisation in Practice (60 mins)

Abstract Application performance always matters. Sometimes critically, sometimes subtly, but it’s never irrelevant. While many developers rightly caution that “premature optimisation is the root of all evil,” the opposite mistake, ignoring performance until it becomes a serious issue, can be just as problematic. This talk explores the practical aspects of performance optimisation in .NET. We’ll…

Encrypting Properties with System.Text.Json and a TypeInfoResolver Modifier (Part 1)

In this multi-part blog series, we’ll build a reasonably full-featured code base for automatically encrypting/decrypting specific properties on types that are being serialised and deserialised using System.Text.Json. In future posts, we’ll eventually build up to a solution that utilises Azure Key Vault to secure the encryption key protecting the data. Today, we’ll begin with some […] The post…

How dotnet.exe resolves and loads the hostfxr library – Exploring the .NET muxer

In this post, we will continue our journey into the functionality and implementation of dotnet.exe, specifically focusing on how the hostfxr library is resolved and loaded. This post follows part one of this series, “A Brief Introduction to the .NET Muxer (aka dotnet.exe)“. Note: These posts are a deep dive into .NET internals and won’t […] The post How dotnet.exe resolves and loads the hostfxr…

A Brief Introduction to the .NET Muxer (aka dotnet.exe)

This post marks the start of what I expect will be a long-term effort to explore the inner workings of .NET, expose the “magic” behind the scenes, and explain the mechanisms and underlying components of the .NET execution model. Today, we begin with a brief introduction to the .NET muxer (dotnet.exe). Note: These posts are […] The post A Brief Introduction to the .NET Muxer (aka dotnet.exe)…

Implementing ASP.NET Core Automatic Span (Activity) Linking for Internal Redirects with Middleware on .NET 9

Today, I’ll continue a current theme for my content based on my experiences implementing OpenTelemetry instrumentation in practice for .NET applications. In this post, I want to focus on a minor enhancement I recently added to a project that enables span links between request traces on ASP.NET Core during internal redirects. NOTE: This code relies […] The post Implementing ASP.NET Core Automatic…

An Efficient Dictionary for IPAddress Tracking using .NET 9 with AlternateLookup and IAlternateEqualityComparer

In this post, I will introduce and demonstrate enhancements to collections in .NET 9 and C# 13 for low-allocation code paths. Specifically, I will demonstrate using a custom IAlternateEqualityComparer and the AlternateLookup on a Dictionary used for efficiently tracking IP address information, keyed on the bytes of IP addresses. My use case, the basis for […] The post An Efficient Dictionary for…

Receiving GitHub Webhooks When Using the ASP.NET Core Developer Certificate

SERIES: A Guide to Developing GitHub Apps on .NET For the last couple of weeks, I have been experimenting with creating a GitHub App using .NET. I’ve been pursuing this because I have an idea for an integration that could be interesting, and it also provides a real-world scenario to keep my skills fresh. I […] The post Receiving GitHub Webhooks When Using the ASP.NET Core Developer Certificate…

Disabling Recording of an Activity (span) in .NET OpenTelemetry Instrumentation

I’ve recently been building some hobby code to dogfood the various observability tooling we develop at Elastic. Additionally, I’ve been interested in identifying the pain points of using our products as well as the .NET instrumentation libraries (from System.Diagnostics) used to instrument code in an OpenTelemetry-compatible way. Recording Activities in .NET In today’s short post, […] The post…