Modernizing Legacy ASP.NET? Don't Fall Into the Task.Run Trap.
When you're building new async controllers and services but your repositories are still synchronous.
Don't wrap sync calls in Task.Run!
You'll burn two thread pool threads instead of one.
Why string.IsNullOrEmpty() stops at strings — and why that matters for your code
Ever wondered why .NET gives you string.IsNullOrEmpty() but no equivalent for lists or mixed-type collections? It’s not an oversight — it’s intentional design.