HomeChallengesRepsProblemsLeaderboardTake a challenge
TRACK 03

ASP.NET Core + APIs

The editor becomes C#, and the preview becomes the response your endpoint has to return.

41 challenges12 free14h of build time1 graded by running your code
Before you start

The later sprints here are about the framework, not the language — they assume you can already read and write C#. If you cannot yet, C# Foundations is the way in: six refactors covering the exact choices the rest of this track takes for granted.

Persistence with EF Core

The Write Side teaches these in JavaScript with no ORM in the way. This is the same set, where you actually work.

  1. The query that ran four hundred timesA list endpoint that looks like one query and is four hundred. Fix it twice: once by projecting to exactly what the response needs, and once for the case where whole entities really are required.Intermediate · 20 min
  2. Tracking, and when not toSomebody read that AsNoTracking is faster and put it everywhere, including on the method that saves. Decide per path: reads do not track, writes must, and the report that reaches the same row twice needs the identity map without the snapshots.Intermediate · 20 min · Pro
  3. The migration that lost a columnThe scaffolder saw a renamed property and generated a drop and an add. It would have passed review and deleted every customer name in production. Rewrite it so the data survives, and so adding a required column works on a table that already has rows.Advanced · 20 min · Pro
  4. Where the transaction endsAn order, an outbox message and a ledger entry, written by two SaveChanges calls with a crash-shaped gap between them. Decide where the unit of work actually ends and make the gap impossible.Advanced · 20 min · Pro
  5. The concurrency tokenTwo people reserve the last unit of stock within a second of each other and both succeed. Give the row a version, let the second write fail, and turn that failure into something the caller can act on.Advanced · 20 min · Pro