DEV Community

Cover image for This week in Cursor + .NET — 6 rules (week ending July 26, 2026)
Agentic Architect
Agentic Architect

Posted on • Originally published at agentic-architect.dev

This week in Cursor + .NET — 6 rules (week ending July 26, 2026)

Every weekday a single, opinionated rule for senior C#/.NET engineers using Cursor. Here's the full week in one read — canonical posts live on the Agentic Architect blog.

6 daily senior rules

Rule 24: ValueTask Only When Justified

Sun 26 Jul

ValueTask is a perf optimisation for hot paths that often return synchronously. It is not a drop-in for Task. Cursor swaps them around without thinking. Flag ValueTask returns and ask whether the method is actually mostly synchronous. If not, revert to Task.

→ Permalink on the blog

Rule 23: No Bool Flag Parameters

Sat 25 Jul

SendEmail(string to, bool isHtml) should be SendHtmlEmail and SendPlainEmail. Bool flags hide branching that belongs in the type system. Flag any method signature with two or more bool parameters as a refactor candidate.

→ Permalink on the blog

Rule 22: BackgroundService Over Task.Run

Fri 24 Jul

Long-running work in ASP.NET Core goes in a BackgroundService, not Task.Run inside a controller. Cursor will happily fire Task.Run and call it "async work" — your request thread will die mid-execution and you'll never know why. Catch Task.Run outside test code and propose a hosted service.

→ Permalink on the blog

Rule 21: Channels for Producer Consumer

Thu 23 Jul

System.Threading.Channels beats BlockingCollection and beats roll-your-own queue plus SemaphoreSlim. The AI reaches for ConcurrentQueue every time and stitches it together by hand. A rule that detects producer/consumer patterns and proposes Channel will save you a class.

→ Permalink on the blog

Rule 19: NetArchTest for Boundaries

Tue 21 Jul

Architectural rules belong in tests, not in code review. Encode them as NetArchTest assertions ("no class in Domain references EntityFrameworkCore") and they fail your build instead of your standup. Add the corresponding test whenever a new layer or project is introduced.

→ Permalink on the blog

Rule 18: WebApplicationFactory for Integration Tests

Mon 20 Jul

In-memory EF Core providers lie. Use WebApplicationFactory with Testcontainers (SQL Server, Postgres) for real integration coverage. Cursor defaults to UseInMemoryDatabase — it passes locally and ships the bug to production. Flag the in-memory provider in test projects.

→ Permalink on the blog


Try one rule before you trust the whole kit

The free arch-core-lite.mdc is one drop-in Cursor rule that ends the morning re-explanation ritual. Install in 60 seconds, see whether Cursor actually remembers your DI lifetimes, and decide for yourself whether the full kit is worth £9.00.

Canonical home for everything in this digest: https://agentic-architect.dev/blog/.

Top comments (0)