Dependency injection, the middleware pipeline, EF Core, auth and the questions every .NET backend loop asks.
A worker wakes up and has to decide which of its jobs are due. Each entry
in jobs is "<name> <lastRun> <interval>".
Implement DueJobs(List<string> jobs, int now) returning the names of
What is a BackgroundService in ASP.NET Core? Describe its lifecycle and
what you put in ExecuteAsync.
A cache key has to include everything the cached value depends on, and it has to be stable - two requests with the same inputs in a different order must produce the same key.
Trace a cache with absolute expiration against a fake clock. Each entry
in requests is "<key> <time>", in non-decreasing time order.
Implement SimulateCache(List<string> requests, int ttl) returning
Compare IMemoryCache and IDistributedCache. What changes about your
code and about your operational behaviour when you move from one to the
other?
What is the difference between absolute and sliding expiration, and what goes wrong if you cache something with no expiration at all?