.NET

Stop Parsing the Same String Twice: CompositeFormat in .NET

Stop Parsing the Same String Twice: CompositeFormat in .NET

Every time you call string.Format() with the same format string, .NET parses it again. And again. And again. CompositeFormat changes that: parse once, reuse forever. The result? Up to 30% faster formatting, fewer allocations, and a one-line code change. Here’s why this matters and how to use it.
How SearchValues Saved Us From Scaling Hell

How SearchValues<T> Saved Us From Scaling Hell

While you’re busy optimizing database queries and adding cache layers, thousands of string searches per second are quietly eating your CPU budget. The problem isn’t visible in your APM dashboard because it’s distributed across every request. But it’s there. Compounding. Scaling linearly with load.

I discovered this the hard way when a log processing API started choking under production traffic. The bottleneck? String validation and sanitization. The fix? A .NET 8 feature that delivered a 5x performance improvement and let us shut down servers instead of adding them. And it’s gotten even better in .NET 9 and 10.

Clean Code: A Lip Service, Not a Standard

Clean Code: A Lip Service, Not a Standard

Clean Code is often praised but rarely practiced effectively. This article explores how misunderstood ideals and over-engineering harm .NET systems, how to recognize such failures early, and which C# best practices and official guidelines truly support maintainable software.
ConstantExpectedAttribute: Unlocking Performance Through Compiler Awareness

ConstantExpectedAttribute: Unlocking Performance Through Compiler Awareness

The ConstantExpectedAttribute, introduced in .NET 7, provides a powerful mechanism to signal compiler expectations about constant values. This enables better performance optimizations, enhanced IDE tooling, and clearer API contracts. Learn how to leverage this attribute to build more efficient and maintainable .NET applications.
Retiring Legacy .NET Projects — Balancing Risk, Cost, and Forward Value

Retiring Legacy .NET Projects — Balancing Risk, Cost, and Forward Value

In every mature .NET landscape, legacy projects represent both heritage and hazard. They once powered entire business models — now they silently consume time, budget, and attention. The decision to retire or modernize them isn’t about technology fashion. It’s about sustaining the organization’s capacity for value creation.

TUnit — A Pragmatic Evaluation for .NET Teams

TUnit — A Pragmatic Evaluation for .NET Teams

TUnit brings compile-time test discovery and native AOT support to .NET testing — but is it ready for enterprise adoption? A pragmatic analysis of performance gains, tooling maturity, and migration timing for teams evaluating alternatives to MSTest, xUnit, and NUnit.
Still Waiting for the Final Piece: When C# 14 Comes Close, But Not Quite There

Still Waiting for the Final Piece: When C# 14 Comes Close, But Not Quite There

C# 14 introduces the new ‘Extension Everything’ syntax—an elegant step toward more expressive code, yet one that still can’t quite match VB.NET’s classic ByRef magic. A humorous reflection on what’s almost, but not fully, possible in .NET 10.
The Generous Gift? Microsoft Extends .NET STS Support to 24 Months

The Generous Gift? Microsoft Extends .NET STS Support to 24 Months

Microsoft has extended .NET STS support from 18 to 24 months. A genuine gift to developers or just catching up with reality? Let’s analyze what this means for your development planning.
.NET 10 RC 1 is Knocking at the Door: Architectural Impact, C# 14, and Performance

.NET 10 RC 1 is Knocking at the Door: Architectural Impact, C# 14, and Performance

.NET 10 RC 1 is knocking at the door, marking the first release candidate and offering the .NET community a detailed preview of what’s to come in the next LTS cycle. While not the final release, RC 1 is “go-live” supported and represents the feature-complete platform that will soon become .NET 10 LTS. In this article, I’ll try to give a rough overview of the architectural impact of .NET 10 RC 1, focusing on the latest C# 14 features, under-the-hood performance improvements, and strategic considerations for the upcoming LTS.

Visual Studio 2026 - Why AI-Native Tooling Will Matter

Visual Studio 2026 - Why AI-Native Tooling Will Matter

Let’s skip the typical release-cycle enthusiasm for a second: Most IDE updates come and go. New features, some refactoring helpers, a bit of polish, then back to business as usual. Visual Studio 2026 is different. For once, the promise of “AI-native” isn’t just marketing. If Microsoft lands even half of what they’re previewing, it’s going to matter—a lot.

Buzzword-Driven Development vs. Fundamental Software Quality

Buzzword-Driven Development vs. Fundamental Software Quality

Explore why fundamental software quality practices in .NET must never be overlooked for trendy buzzwords, including recommended analyzers and project settings for managing technical debt effectively.
How to Use Copilot Without Becoming Its Puppet

How to Use Copilot Without Becoming Its Puppet

In a previous article, we laid it out – unfiltered: Copilot turns junior devs into syntax secretaries.

Not because it’s evil. But because it removes friction before understanding.

It gives you working code before you know what working even means. It creates the illusion of progress, while slowly eroding the very skills that define a software engineer: reasoning, decision-making, and technical ownership.