← ClaudeAtlas

mir-backend-dotnet-aspnetcorelisted

Make It Right (ASP.NET Core module). ASP.NET Core 10 + Minimal APIs + EF Core 10 footguns. Covers: DI lifetime errors (AddDbContext Scoped vs singleton capture, IHttpContextAccessor caveats), middleware pipeline ORDER (UseRouting -> UseAuthentication -> UseAuthorization -> UseAntiforgery -> endpoints; wrong order silently disables auth), model binding overposting onto EF entities and why [Bind] does NOT work on JSON bodies, response DTO discipline against field leakage, EF Core N+1 and the EF Core 10 parameterized-collection translation change, ExecuteUpdate/ExecuteDelete bypassing the change tracker, object-level authorization (IDOR via a valid token, no resource check), .NET 10 AddValidation, the non-short-circuiting antiforgery middleware, and CORS credentials misconfiguration. Chains: mir-backend -> mir-backend-dotnet (CLR runtime) -> this, which adds only ASP.NET Core / EF Core library mechanics. TRIGGER only when the .NET backend stack uses ASP.NET Core or Minimal APIs — building, reviewing, or debuggin
anantbhandarkar/make-it-right · ★ 15 · API & Backend · score 81
Install: claude install-skill anantbhandarkar/make-it-right
# /mir-backend-dotnet-aspnetcore · Make It Right (ASP.NET Core) Bottom tier of the chain: `mir-backend` (generic gates) → `mir-backend-dotnet` (CLR runtime model) → **this** (ASP.NET Core / EF Core / Minimal API library mechanics). Run the gates first; load the .NET runtime tier for async model, DI lifetime theory, and thread-pool concerns; reach for *this* at Gate 5 (design mechanics), Gate 6 (implementation), and Gate 7 review. **Runtime-level concerns (sync-over-async deadlock, ConfigureAwait(false), ValueTask, IDisposable, CancellationToken propagation, captive dependency theory) live in `mir-backend-dotnet` — not here.** **Stack assumed (verified 13 Aug 2026):** **ASP.NET Core 10** (controllers or Minimal APIs) · **EF Core 10** · SQL Server / PostgreSQL · `Microsoft.EntityFrameworkCore.Design` migrations. Current patch is 10.0.11 (11 Aug 2026). Version notes that change what you should write: - **EF Core 10 requires .NET 10.** There is no EF Core 10 on `net8.0`. A project stuck on `net8.0`/`net9.0` is stuck on EF Core 8/9, and both of those runtimes leave support on **10 Nov 2026** (see `mir-backend-dotnet`). - **EF Core 10 changed how parameterized collections translate** — see footgun 4. This is the one upgrade change most likely to show up as a production latency regression rather than a compile error. - **`ExecuteUpdateAsync` now takes a plain lambda instead of an expression tree** in EF Core 10. Code that composed `Expression<Func<SetPropertyCalls<T>, SetPropert