Two services in two languages each invented their own request identifier header, and neither could follow a request into the other. Deciding where the identifier originates is the…
Reading configuration by key from a dictionary means every consumer knows the key names and nothing validates them; binding to a class means the shape is declared once.…
3.1 in December 2019 is the long-term support release, and .NET 5 in November 2020 drops the “Core” without being a different platform. Skipping 5 and waiting for…
A long-running process alongside the web application is a first-class concept here, rather than a separate supervisor configuration and a script. The cancellation token threaded through every call…
Returning a large result set meant materialising the whole thing into a list, and the async equivalent of a generator did not exist until C# 8. This is…
A health endpoint written as a controller action goes through routing, filters and model binding — which is exactly the machinery a health check should not depend on.…
The file sits next to appsettings.json, contains environment variables and URLs, and is read only by the tooling — never by a published application. Putting a real connection…
3.0 brought a JSON serialiser into the framework, and it is stricter than the third-party one it replaces in ways that break existing code quietly. Case-sensitive deserialisation is…