Production Rate Limiting in ASP.NET Core
Most ASP.NET Core rate-limiting examples stop after registering a fixed window. That is enough to demonstrate the middleware, but it is not enough for a production policy.
Read Blog PostC# guides with practical examples for async programming, testing, language features and performance in .NET applications, written by Benjamin Abt.
Most ASP.NET Core rate-limiting examples stop after registering a fixed window. That is enough to demonstrate the middleware, but it is not enough for a production policy.
Read Blog PostFor more than two decades, (decimal)1.23 returned 1.23m. It looked correct, it passed every test and it was a polite lie.
Read Blog PostDistroless, Chiseled and Alpine are often compared as three equivalent Linux distributions. They are not. Alpine is a distribution built around musl, BusyBox and apk. Distroless describes a runtime image without a …
Read Blog PostMost .NET Dockerfiles repeat the same five steps: restore, publish, select the matching Microsoft runtime image, copy the output and start the application. That works, but it rarely expresses application-specific intent. …
Read Blog Postbuilder.Services.AddProblemDetails() registers infrastructure. It does not create an error contract. An ASP.NET Core request can fail during binding, validation, authentication, authorization, endpoint execution, …
Read Blog PostRetries are the most visible resilience strategy and the easiest one to misuse. Repeating a failing call can recover from a short network problem. It can also multiply load, repeat a write and keep working long after the …
Read Blog PostASP.NET Core 11 has no single feature that fundamentally changes how web applications are built. That is not a criticism. Mature frameworks improve by removing custom infrastructure, tightening defaults and making common …
Read Blog PostMicrosoft Agent Framework is the successor to the agent capabilities in Semantic Kernel and AutoGen. That statement is easy to misread as “replace the package and rename a few classes.” The migration is more …
Read Blog PostAn MCP server can look deceptively small. A package is installed, a method receives an attribute and ASP.NET Core maps an endpoint. That is enough for a demonstration. It is not enough for a server that is allowed to …
Read Blog PostTemporary data is easy to create and surprisingly difficult to remove reliably. Sessions, idempotency keys, import buffers, transient integration responses, processed-message markers and short-lived audit records all …
Read Blog Post