Modernizing .NET Part 24! 📊
Today we’re implementing modern observability with Prometheus and Grafana.
✅ OpenTelemetry metrics
✅ Runtime health (GC, Threads)
✅ Kubernetes-native monitoring
https://medium.com/@michael.kopt/modernizing-net-part-24-modern-monitoring-with-prometheus-and-grafana-d83647e9737b
#dotnet #csharp #aspnet #aspnetcore #csharp #prometheus #grafana #monitoring
📊 Modernizing .NET — Part 24: Modern Monitoring with Prometheus and Grafana

Master application observability in .NET Core. Learn to implement OpenTelemetry, Prometheus, and Grafana for professional monitoring.

Medium
That while + Task.Delay loop is quietly drifting. This drop swaps in PeriodicTimer to keep background jobs on time and spotlights IdentityServer rate limits, cleaner Minimal APIs, and YARP as a lean gateway. #dotnet #csharp #aspnetcore

.NET drip - Saturday, May 9, 2...
PeriodicTimer: The Async-Friendly Way to Schedule Recurring Work

PeriodicTimer: The Async-Friendly Way to Schedule Recurring Work — plus 9 curated .NET links

.NET Drip

Part 3 of the StyloBot Release Series is up.

https://www.mostlylucid.net/blog/stylobot-release-reliability

This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

Covers:

how I periodically review long-running services

using dotnet-counters, dotMemory and dotTrace to find growth

why “just add a cap” is often the wrong answer

replacing unbounded ANN structures with bounded hot caches + compacted persistence

taking the vector layer from 13GB LOH to <6MB

The broader point applies to any system that “remembers”:

bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

Fix the shape, not the symptom.

#dotnet #aspnetcore #performance #architecture #ai #rag #observability

Finding and Fixing Unbounded Growth in Long-Running .NET Services (English)

Long-running services tend to slowly drift toward unbounded memory. Here's how I find that drift, how I think about fixing it without papering over it, and...

mostlylucid

You've put it off for long enough now...

Read more here:
https://bgh.st/70cmio

#aspnet #aspnetcore #tutorial #beginners

Disable HTTP caching by default in ASP.NET Core APIs - Gérald Barré

Learn why API responses should not be cached by default and how to implement middleware to prevent caching in ASP.NET Core applications.

Meziantou's blog

Modernizing .NET Part 23! 🪵

Today we’re fixing log4net context loss in async environments.

✅ Move to LogicalThreadContext
✅ Zero-loss diagnostic trail
✅ Async-safe logging

https://medium.com/@michael.kopt/modernizing-net-part-23-migrating-log4net-to-modern-net-logging-ebad712711e5
#dotnet #csharp #aspnet #aspnetcore #log4net #programming

🪵 Modernizing .NET — Part 23: Migrating log4net to Modern .NET Logging

Fix log context loss in async .NET Core apps. Migrate log4net from ThreadContext to LogicalThreadContext for seamless diagnostic flow.

Medium
This drop solves the multi-impl problem with .NET 8 keyed services, from DI attributes to runtime resolution, no factories. Plus, EF Core named filters, Dockerfile-free images, and DPoP-hardened APIs. #dotnet #csharp #aspnetcore

.NET drip - Saturday, May 2, 2...
Keyed Services: Resolving the Right Implementation Without Factory Hacks

Keyed Services: Resolving the Right Implementation Without Factory Hacks — plus 9 curated .NET links

.NET Drip

Get started with dependency injection using IServiceCollection!

Read more here:
https://bgh.st/3z6d2w

#CSharp #DotNet #ASPNetCore #Programming

New Stylobot UI article.

https://www.mostlylucid.net/blog/behaviour-aware-ux

StyloBot Release Series: Behaviour-Aware ASP.NET UI

#aspnetcore #aspnet #inference

Dew Drop Weekly Newsletter #481 - Week Ending May 1, 2026

Dew Drop Weekly Newsletter #481 - Week Ending May 1, 2026

Zoho Campaigns