DEV Community

C# Series with GitHub Samples Series' Articles

Back to Sukhpinder Singh's Series
When SearchValues<T> Actually Pays Off

When SearchValues<T> Actually Pays Off

9
Comments
3 min read
One Cache Miss, Fifty Database Calls

One Cache Miss, Fifty Database Calls

12
Comments
4 min read
600 Filters and a 414: The New QUERY Method in .NET 10

600 Filters and a 414: The New QUERY Method in .NET 10

7
Comments
5 min read
Your JSON Array Was Streaming All Along

Your JSON Array Was Streaming All Along

10
Comments 3
5 min read
One Task.Run Quietly Killed the BackgroundService Startup Footgun

One Task.Run Quietly Killed the BackgroundService Startup Footgun

6
Comments 1
4 min read
One Unbounded Channel, 188 MB of Regret

One Unbounded Channel, 188 MB of Regret

7
Comments
4 min read
Your Request Timeout Is a Polite Suggestion

Your Request Timeout Is a Polite Suggestion

7
Comments
4 min read
The WhenAny Drain Loop Can Finally Retire

The WhenAny Drain Loop Can Finally Retire

7
Comments 1
4 min read
Two Includes, 2,880 Rows: EF Core's Quiet Cartesian Tax

Two Includes, 2,880 Rows: EF Core's Quiet Cartesian Tax

7
Comments 1
4 min read
The 400 I Didn't Have to Write

The 400 I Didn't Have to Write

5
Comments
4 min read
The Freeze Fee: What FrozenDictionary Charges and When It Pays

The Freeze Fee: What FrozenDictionary Charges and When It Pays

6
Comments 1
4 min read
19 Requests Through a 10-Request Limit

19 Requests Through a 10-Request Limit

6
Comments 1
4 min read
The Test That Slept and the Test That Never Woke Up

The Test That Slept and the Test That Never Woke Up

6
Comments
5 min read
My Shell Scripts Speak C# Now

My Shell Scripts Speak C# Now

6
Comments
4 min read
The Factory Class I Finally Deleted

The Factory Class I Finally Deleted

6
Comments
4 min read
I Loaded 8,956 Rows to Flip One Boolean

I Loaded 8,956 Rows to Flip One Boolean

6
Comments 1
4 min read
One Outage, Four Times the Traffic

One Outage, Four Times the Traffic

9
Comments
4 min read
The Feature Flag That Needed a Restart

The Feature Flag That Needed a Restart

7
Comments 2
4 min read
I Hashed Every Word Twice to Count It Once

I Hashed Every Word Twice to Count It Once

11
Comments 1
4 min read
7.8 MB of Keys I Allocated Just to Throw Away

7.8 MB of Keys I Allocated Just to Throw Away

14
Comments
4 min read
Microsoft.Testing.Platform Crash-Resilient TRX: Keep Evidence When the Host Dies

Microsoft.Testing.Platform Crash-Resilient TRX: Keep Evidence When the Host Dies

5
Comments
4 min read
ASP.NET Core 10 Authentication Metrics: Distinguish No Result from Failure

ASP.NET Core 10 Authentication Metrics: Distinguish No Result from Failure

5
Comments
4 min read
xUnit 4 ParallelMode.All: Protect Shared State from Test Races

xUnit 4 ParallelMode.All: Protect Shared State from Test Races

5
Comments 1
4 min read
.NET 10 dotnet tool exec: Pin the Version and Feed in CI

.NET 10 dotnet tool exec: Pin the Version and Feed in CI

5
Comments
4 min read
MCP x-mcp-header Validation: Keep Bad Tool Schemas Out of tools/list

MCP x-mcp-header Validation: Keep Bad Tool Schemas Out of tools/list

6
Comments 1
4 min read
.NET 10 Numeric String Sorting: Put File 10 After File 9

.NET 10 Numeric String Sorting: Put File 10 After File 9

5
Comments
4 min read
MCP C# SDK Array Tool Outputs: Stop Looking for a `result` Wrapper

MCP C# SDK Array Tool Outputs: Stop Looking for a `result` Wrapper

5
Comments
4 min read
.NET 10 JSON Console Logging: Stop Parsing State.Message

.NET 10 JSON Console Logging: Stop Parsing State.Message

7
Comments
4 min read
.NET 10 NU1015: Fix PackageReference Without Version Restore Failures

.NET 10 NU1015: Fix PackageReference Without Version Restore Failures

6
Comments
4 min read
MCP Pagination Empty `nextCursor`: Don't Stop After Page One

MCP Pagination Empty `nextCursor`: Don't Stop After Page One

5
Comments
4 min read
.NET 10 NU1510 Package Pruning: Fix CI Without Breaking Legacy Targets

.NET 10 NU1510 Package Pruning: Fix CI Without Breaking Legacy Targets

5
Comments
4 min read
.NET 10 BufferedStream WriteByte: Flush Full Buffers Explicitly

.NET 10 BufferedStream WriteByte: Flush Full Buffers Explicitly

5
Comments 1
3 min read
.NET 10 ActivitySamplingResult PropagationData: Why Recorded Turns False

.NET 10 ActivitySamplingResult PropagationData: Why Recorded Turns False

11
Comments 2
4 min read
Claude Structured Outputs Refusal Handling: Stop Parsing HTTP 200 Refusals

Claude Structured Outputs Refusal Handling: Stop Parsing HTTP 200 Refusals

6
Comments
4 min read
Claude API Workspace Verification: Catch Misrouted Requests Before Attribution

Claude API Workspace Verification: Catch Misrouted Requests Before Attribution

5
Comments
4 min read
MCP C# Per-Request Client Capabilities: Read the Request, Not the Server

MCP C# Per-Request Client Capabilities: Read the Request, Not the Server

6
Comments 2
4 min read
OpenAI Responses API `user` Migration: Split Safety from Prompt Caching

OpenAI Responses API `user` Migration: Split Safety from Prompt Caching

5
Comments
4 min read
MCP C# Task Polling: Stop Infinite input_required Loops

MCP C# Task Polling: Stop Infinite input_required Loops

6
Comments 3
3 min read
OpenAI Usage API api_key_id: Reconcile Tokens and Costs by Key

OpenAI Usage API api_key_id: Reconcile Tokens and Costs by Key

12
Comments 1
4 min read
.NET 10 LDAP VlvRequestControl Validation: Stop Sending Replacement Bytes

.NET 10 LDAP VlvRequestControl Validation: Stop Sending Replacement Bytes

5
Comments
4 min read
.NET 10 InlineArray Explicit Size: Fix TypeLoadException with a Wrapper

.NET 10 InlineArray Explicit Size: Fix TypeLoadException with a Wrapper

5
Comments 1
4 min read
OpenAI Responses API previous_response_id Instructions: Repeat Policy on Every Turn

OpenAI Responses API previous_response_id Instructions: Repeat Policy on Every Turn

5
Comments
4 min read
EF Core 10 Named Default Constraints: Preview the Migration SQL Before Deploying

EF Core 10 Named Default Constraints: Preview the Migration SQL Before Deploying

6
Comments
4 min read