*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](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/).*
## New essays this week
### [How to stop Cursor AI forgetting your .NET architecture (the $9 fix)](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/06-stop-cursor-ai-drift-dotnet.html)
_Sat 30 May · .NET tooling_
Cursor forgets your DI patterns, boundaries, and conventions every session. Here's a 4-rule framework that locks your architecture into the AI's long-term memory.
### [How to use Cursor AI with Entity Framework Core (without blowing up your database)](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/07-cursor-efcore-patterns.html)
_Sat 30 May · .NET tooling_
Cursor AI generates N+1 queries, eager-loads entire databases, and skips AsNoTracking. Here's a rule-based guardrail system that catches 90% of EF Core mistakes before production.
### [Cursor vs JetBrains Rider for C#/.NET in 2026: which to pay for](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/05-cursor-vs-rider-dotnet.html)
_Tue 26 May · .NET tooling_
Senior .NET teams aren't picking - they're paying for both. The honest comparison, the pricing math, and the config that lets the two tools share state.
## 6 daily senior rules
### Rule 18: WebApplicationFactory for Integration Tests
_Sun 31 May_
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](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-31)
### Rule 17: ConfigureAwait false in Libraries
_Sat 30 May_
Library code (non-ASP.NET) should ConfigureAwait false on every awaited Task. ASP.NET Core code should not. Cursor mixes the two contexts in the same solution. Detect the project type and enforce the right default.
[→ Permalink on the blog](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-30)
### Rule 16: async void Outside Event Handlers
_Fri 29 May_
async void is a deadlock and unhandled-exception trap everywhere except UI event handlers. The AI uses it routinely for "fire and forget" — wrong answer every time. Flag it on sight.
[→ Permalink on the blog](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-29)
### Rule 15: Records for Value Objects, Classes for Entities
_Thu 28 May_
Value objects (Money, Address, Coordinates) should be records. Entities with identity (Order, Customer) should be classes with an Id. Cursor mixes these constantly. A rule that classifies based on the presence or absence of an identity property keeps the distinction honest.
[→ Permalink on the blog](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-28)
### Rule 14: Sealed By Default
_Wed 27 May_
Mark every class sealed unless inheritance is explicitly planned. Stops Cursor inventing accidental inheritance hierarchies "for flexibility." Small but measurable virtual-call perf wins too.
[→ Permalink on the blog](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-27)
### Rule 12: IOptionsSnapshot Over Raw Config
_Mon 25 May_
Business code should never call IConfiguration directly. Strongly-typed IOptions or IOptionsSnapshot bindings only. The AI loves to "just grab the config value" — refuse it and force a settings class with validation attributes.
[→ Permalink on the blog](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/#2026-05-25)
---
## Try one rule before you trust the whole kit
The free **[`arch-core-lite.mdc`](https://github.com/agenticstandardcontact-byte/agentic-architect/blob/main/arch-core-lite.mdc?utm_source=devto&utm_medium=weekly_digest&utm_campaign=free_sample)** 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 £19.99.
- **Free sample:** [`arch-core-lite.mdc` on GitHub](https://github.com/agenticstandardcontact-byte/agentic-architect/blob/main/arch-core-lite.mdc?utm_source=devto&utm_medium=weekly_digest&utm_campaign=free_sample)
- **Full kit (£19.99, one-time):** [Agentic Architect on Gumroad](https://agenticarchitect.gumroad.com/l/dotnet-persistence-kit?utm_source=devto&utm_medium=weekly_digest&utm_campaign=paid_kit)
- **Daily rules feed:** [https://agenticstandardcontact-byte.github.io/agentic-architect/blog/](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/?utm_source=devto&utm_medium=weekly_digest&utm_campaign=blog_index)
Canonical home for everything in this digest: [https://agenticstandardcontact-byte.github.io/agentic-architect/blog/](https://agenticstandardcontact-byte.github.io/agentic-architect/blog/).