this week's favorite
Rate limiting in web applications - Concepts and approaches
In this post, let’s take a step back and explore the simple yet wide realm of rate limiting. We’ll go over how to decide which resources to limit, what these limits should be, and where to enforce these limits.
How we achieved 5X faster pipeline execution by removing closure allocations
The NServiceBus messaging pipeline strives to achieve the right balance of flexibility, maintainability, and wicked fast…ummm…ability. It needs to be wicked fast because it is executed at scale. For our purposes, “at scale” means that throughout the lifetime of an NServiceBus endpoint, the message pipeline will be executed hundreds, even thousands of times per second under high load scenarios.
Adding validation to strongly typed configuration objects in .NET 6
I start by giving some background on the configuration system in ASP.NET Core and how to use strongly typed settings. I'll briefly touch on how to remove the dependency on IOptions in your consuming types, and then look at the problem I'm going to address—when your strongly typed settings bind incorrectly. Finally, I describe ValidateOnStart() as a solution for the issue, so you can detect any problems at app startup.
Using GC.KeepAlive in async methods
As you probably already know, the GC is responsible for freeing memory when objects are not used anymore. It does so by tracking references: if there are no reachable references to a given object, then it can be cleaned away.
Authentication for .NET MAUI Apps with MSAL.NET
In this blog we will take a look at how to perform authentication in .NET MAUI apps to acquire the desired token.