The three pillars of observability in .NET — when to use structured logs, distributed traces, and metrics. Strategy guide with Serilog and OpenTelemetry.
Compare event sourcing and CRUD for .NET. When the audit trail and temporal queries justify event sourcing's complexity, with C# implementation patterns.
DDD interview prep for .NET engineers — aggregate root, bounded context, domain events vs integration events, and the anemic domain model anti-pattern.
API design interview prep for .NET developers. REST design, idempotency, pagination, versioning, and rate limiting — with 30-second and strong answers.
Implement the Anti-Corruption Layer pattern in .NET to translate between bounded contexts and wrap legacy APIs. C# examples for healthcare integrations.
Kafka on .NET for ASP.NET Core: adopt for replay and many consumers, commit the outbox with the row, and commit offsets after the write. Not from the controller.
Hot Chocolate authorization in ASP.NET Core for GraphQL fields: policies, the right Authorize attribute, validation versus BeforeResolver, and partial errors.
.NET 9 built-in OpenAPI versus Swashbuckle: who writes the document, who only draws a UI, and where NSwag or Scalar still fits. Do not run two generators.
A covering index for an EF Core query: which columns are keys versus INCLUDE, how IncludeProperties maps them, and how you prove the key lookup is gone.
Background report progress with SignalR in ASP.NET Core: store the job, build the file in a worker, and notify only an authorized group. Refresh uses GET.
Azure Event Grid with ASP.NET Core webhooks: the OPTIONS or validationResponse handshake, caller authentication, and a fast ack that stays safe on retry.
ASP.NET Core rate limiting vs Polly: return 429 before the action, and limit outbound HttpClient calls in Polly. Most APIs need both, for different budgets.
Angular axe and Playwright accessibility CI: host the SPA in ASP.NET Core, scan real routes, and fail on serious or critical violations. Same host as production.
ASP.NET Core integration tests with Testcontainers — real SQL or Postgres and Redis beside WebApplicationFactory. Extends WebApplicationFactory; not Angular E2E.
A practical OWASP API Security Top 10 checklist mapped to ASP.NET Core controls — BOLA, auth, mass assignment, rate limits, CORS, and Angular trust boundaries. Not a JWT or RBAC rewrite.
Getting started with .NET Aspire: the AppHost, service defaults, and adding the ASP.NET Core API and the Angular app. That is the whole scope of this page.
When an ASP.NET Core API should use vertical slice architecture instead of Clean Architecture, and how to keep one DbContext without four projects per feature.
Publish a message only if the EF Core save committed. The transactional outbox writes the event in the same transaction as the order, then a background worker sends it.
LINQ interview questions with scenario answers for C# and EF Core: deferred execution, IQueryable SQL, client evaluation, and queries that look fine in memory and fail in production.
IEnumerable vs IQueryable vs ICollection in EF Core: which one still builds SQL, which one loads the table, and which one is only a navigation collection.
Stop duplicate orders with idempotency keys in ASP.NET Core — store the Idempotency-Key header with the response and replay safely for duplicate requests.
Git merge vs git rebase in enterprise teams: 3-way merge commits vs linear history, interactive squashing (git rebase -i), conflict resolution, and the golden rule of rebasing.
How an Angular app and an ASP.NET Core API use Microsoft Entra ID: which token the API accepts, the audience and scope checks that cause 401s, and when a BFF is the better shape.
The ASP.NET Core error 'A second operation was started on this context' means one DbContext is running two queries. The usual causes are a missing await, a parallel task, or a context stored in a singleton.
How to run EF Core migrations in production without a startup race: generate a SQL script, apply it once in the pipeline, and use expand and contract when the app is already live.
Dapper vs EF Core in ASP.NET Core: performance realities, change tracking overhead, sharing transactions in hybrid architectures, and when to use each tool.
Offset page numbers skip and duplicate rows when the table changes. Cursor pagination for an ASP.NET Core list API is a key, a stable order, and a next link Angular can follow.
C# OOP interview questions with scenario answers: abstract class vs interface, records, virtual and sealed, composition over inheritance, and what to say when the interviewer asks why.
Configure production HTTP security headers in ASP.NET Core: X-Content-Type-Options, X-Frame-Options, Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), and Permissions-Policy.
Configure production health checks in ASP.NET Core: isolate liveness from readiness, write custom IHealthCheck handlers, configure Kubernetes probes, and prevent restart storms.
Fix ASP.NET Core redirecting to http, dropping the real client IP, or looping on HTTPS when it sits behind Azure App Service or YARP. The proxy is untrusted until you say so.
Implement end-to-end request tracing in ASP.NET Core with custom CorrelationIdMiddleware, ILogger scopes, W3C traceparent headers, and Angular HTTP interceptors.
Which RxJS map to use when Angular calls an ASP.NET Core API: switchMap for search, exhaustMap for submit, concatMap when order matters. The wrong one drops or doubles the request.
Swagger is the UI name; OpenAPI is the document. Say both on a README. Package choice lives at /blog/dotnet-9-openapi-vs-swashbuckle, not on this page.
Map one-to-one, one-to-many, and many-to-many in EF Core — owned types vs FK, skip-level n-n vs a join entity with payload, delete behavior, and the Angular DTOs I actually return.
What is a cache miss — definition, cache hit vs miss, why misses hurt performance, and how cache misses work with IMemoryCache and Redis on ASP.NET Core APIs.
Repository definition and meaning explained — what a repository is in software and in .NET. When to use the pattern with EF Core: see the repository pattern guide.
Fix 'error establishing a Redis connection' in ASP.NET Core — connection string, TLS, Azure Cache for Redis, Docker networking, timeout, and fail-open IDistributedCache patterns.
.NET interview questions and answers as a topic map. Use this page to pick a track, then open the linked post that actually holds the scenario answers.
Deadlock definition and avoidance in OS and C# — lock ordering, async deadlocks, and how that differs from SQL Server reader/writer deadlocks (linked separately).
C# multithreading tutorial in one pass — Thread vs ThreadPool vs Task, async is not multithreading, lock and Interlocked, and which primitive article to open next on ASP.NET Core.
Callback meaning in async programming — how callbacks differ from promises and async/await, with C# Task and JavaScript Promise examples for ASP.NET Core and Angular teams.
Caching layers for .NET — object cache, in-memory vs distributed, IMemoryCache vs Redis on ASP.NET Core. Includes cache-miss definition and layer mapping.
Asynchronous meaning and definition explained plainly — what asynchronous means in programming. Side-by-side async vs sync tables: see the comparison guide.
Promise meaning in async programming — how C# Task, JavaScript Promise, and futures represent work that will complete later, with ASP.NET Core examples and interview answers.
Fix IDX10501 JWT kid mismatch in ASP.NET Core — token header kid not in JWKS, signing cert rotation overlap, Authority mismatch, and OpenIddict key refresh.
IdentityServer login loops and redirect_uri mismatch — Duende / OpenIddict client URIs, Angular redirectUrl, post_logout, and PathBase. Not the Identity vs SSO decision.
EF Core value conversions for enums and value objects: HasConversion maps EmailAddress or enum to one SQL column — and what LINQ cannot query inside a JSON blob.
EF Core optimistic concurrency with RowVersion: map SQL Server rowversion as a concurrency token, return 409 on conflict, and stop last-write-wins on encounters.
EF Core interview questions with production answers — entity relationships, RowVersion concurrency, global query filters, ExecuteUpdate vs SaveChanges, and tenant leaks.
EF Core global query filters for soft delete and multi-tenant ClinicId. How HasQueryFilter works — and why IgnoreQueryFilters is how tenant data leaks.
EF Core ExecuteUpdateAsync runs one set-based UPDATE without loading entities. When to use it for bulk fee schedules — and why it skips SaveChanges interceptors.
AsNoTracking vs identity resolution in EF Core: when no-tracking duplicates Patient objects on every row, and when AsNoTrackingWithIdentityResolution fixes read-only Includes.
Thread pool starvation is queued work with no free workers. C# .Result and .Wait on ASP.NET Core cause idle-CPU 504s — diagnose with dotnet-counters, then make the call chain async.
A Task is a promise that work will finish; a Thread is an OS worker. C# async/await is not multithreading — Task vs Thread vs ThreadPool, Sleep vs Delay, and when ValueTask is worth it.
Task.Run queues CPU work on the ThreadPool; await yields the worker during I/O. On ASP.NET Core the request is already on the pool — wrapping ToListAsync makes 504s worse.
A semaphore is a handful of tickets. SemaphoreSlim.WaitAsync is the async lock for outbound HttpClient — bulkhead (max in flight), why lock cannot await, versus inbound rate limiting.
IAsyncEnumerable lets you process SQL rows one at a time instead of loading 100,000 entities into RAM. yield return, AsAsyncEnumerable, EnumeratorCancellation, and streaming HTTP.
If you only write ASP.NET Core APIs, skip ConfigureAwait(false). It is a library contract for WPF/MAUI SynchronizationContext — not a Core performance trick, and not a .Result amnesty.
ConcurrentDictionary is a thread-safe map, not a cache policy. GetOrAdd’s factory can run twice, keys must include tenant id, and a lock is still right when you mutate a value in place.
A CancellationToken is a cooperative please-stop flag. In ASP.NET Core, bind RequestAborted, pass it to EF Core and HttpClient, link timeouts, and do not log client abort as a 500.
A BackgroundService is a hosted worker the generic host starts and stops. Use stoppingToken, not RequestAborted. Create a DI scope per message. Task.Run after Ok() is not a worker.
Fix System.Text.Json object cycle detected in ASP.NET Core — EF navigation graphs, why ReferenceHandler.Preserve breaks Angular, and DTO projection that actually ships.
Fix IDX10503 JWT signature validation failed in ASP.NET Core — wrong HMAC secret, disposed RSA keys, opaque Identity tokens, and how it differs from IDX10501 kid mismatch.
Fix InvalidOperationException Headers are read-only response has started — IExceptionHandler after WriteAsync, streaming exports, Angular CORS errors, and the HasStarted guard.
Fix No XML encryptor found in ASP.NET Core Data Protection — key ring persistence for Docker, App Service scale-out, antiforgery cookies, and the XML encryptor that is not JWT signing.
ASP.NET Core 401 Unauthorized vs 403 Forbidden — Challenge vs Forbid, JWT bearer mapping, Angular interceptor rules, and why logging out on 403 is wrong.
ASP.NET Core middleware order for production — forwarded headers, exception handler, CORS before auth, rate limiting, and Swagger placement behind Azure and Angular SPAs.
Options pattern in C# — when to inject IOptions, IOptionsSnapshot, or IOptionsMonitor, AddOptions vs Configure, named options, and the production bugs I see when teams pick the wrong one.
What is appsettings.json in ASP.NET Core — appsettings.{Environment}.json, ASPNETCORE_ENVIRONMENT, user secrets, and why localappsettings.json is not a real framework file.
Leaving IdentityServer / IdentityServer4 for OpenIddict on ASP.NET Core — client inventory, keys, Angular OIDC breaks, and a cutover checklist from healthcare and SaaS work.
FluentValidation in ASP.NET Core without the deprecated AspNetCore package — one ProblemDetails envelope, field errors Angular forms can bind, and validation in ASP.NET APIs.
HttpOnly cookie refresh tokens for Angular and ASP.NET Core JWT — vs localStorage and BFF, cookie flags, withCredentials, CORS credentials, and CSRF defense.
How I use AddKeyedScoped and FromKeyedServices in ASP.NET Core for closed sets of implementations — EDI vs FHIR clients, tenant notifiers — and when a factory is still the honest design.
Cartesian explosion in EF Core: two collection Includes multiply SQL rows (lines × events). How to confirm in SSMS and fix with split query or fewer Includes.
Fix concurrent 401 refresh stampede in Angular against ASP.NET Core JWT rotation — single-flight RxJS queue, shareReplay pitfalls, skip rules, and POST retry safety.
A practical ASP.NET Core decision guide after MediatR’s commercial licensing: when I stay on MediatR, when I migrate to Wolverine, and when CQRS does not need a mediator at all.
EF Core N+1 problem: extra SQL round-trips when a loop touches navigation properties. How Include, projection, and AsSplitQuery each fix a different bug.
Backend-for-Frontend BFF pattern with ASP.NET Core, Angular, and YARP — cookie sessions, server-side tokens, CSRF defense, and when to skip SPA-held JWTs.
Semantic Kernel and LLMs in ASP.NET Core — prompts, plugins, safety, caching, and how Angular clients call AI features without leaking secrets or tokens.
C# async await interview questions with scenario answers — .Result starvation, async void, Task.WhenAll with EF Core, CancellationToken, and ValueTask.
ASP.NET Core and Web API interview questions with scenario answers — DI captive dependencies, JWT with Angular, middleware order, async starvation, EF Core slowness, and production tradeoffs.
SOLID principles in C# for ASP.NET Core — detailed SRP, OCP, LSP, ISP, DIP examples with DI, Angular-facing APIs, anti-patterns, and refactor checklists from production systems.
Angular interview questions for ASP.NET Core teams — detailed scenario answers on auth guards, JWT interceptors, Signals vs RxJS, CORS myths, RBAC, and SPA performance.
Angular Signals for API-driven apps — load state from ASP.NET Core, computed UI flags, RxJS interop, and when Signals beat BehaviorSubject for SPA state.
Microsoft.AspNetCore.RateLimiting in ASP.NET Core — fixed/sliding windows, per-user policies, 429 responses for Angular clients, and multi-instance pitfalls.
Set up ASP.NET Core global exception handling with ProblemDetails so Angular forms show consistent errors — middleware vs IExceptionHandler, 400 vs 500, and what not to leak.
Use IHttpClientFactory in ASP.NET Core to avoid HttpClient socket exhaustion and stale DNS — named clients, typed clients, Polly retries, and mistakes that still break production APIs.
Redis as a distributed cache in ASP.NET Core — IDistributedCache, stampede control, invalidation, and tenant-aware keys. Connection failures: see the Redis connection fix guide.
Modular monolith vs microservices for .NET — when to split C# services, module boundaries, data ownership, Angular contract stability, and migration path.
Strategy Pattern in C# for ASP.NET Core — swap pricing, validation, or export algorithms without giant if-else blocks, and register strategies with dependency injection.
Angular auth guard and CanActivateFn with ASP.NET Core JWT — route protection, role guards, token expiry checks, returnUrl safety, and why guards are UX not API security.
C# dependency injection in ASP.NET Core — AddTransient vs AddScoped vs AddSingleton, what a transient dependency is, captive dependencies, and habits that keep .NET APIs testable.
How to use the Factory Pattern in C# with ASP.NET Core DI — replace brittle switch statements, use factory delegates and keyed services, and know when a real factory class is worth it.
Repository pattern in C# with EF Core — when named queries earn their keep vs generic IRepository ceremony on healthcare and eCommerce ASP.NET Core APIs.
Pragmatic Clean Architecture in C# / ASP.NET Core — Onion vs Clean, domain boundaries, three-project layout, and when to skip ceremony on SaaS and eCommerce APIs.
MediatR in C# / ASP.NET Core — when CQRS-lite handlers and pipeline behaviors help a product team ship faster, and when extra folders slow healthcare and SaaS delivery down.
Angular and ASP.NET Core integration habits — DTO contracts, error envelopes, pagination metadata, datetime policy, and CORS decisions that stop rework.
.NET API, Angular, and SQL Server via Docker Compose — reproducible local environments for marketplace stacks without the 'works on my machine' problem.
Go-live checklist for ASP.NET Core on Azure App Service: deployment slots, secrets, health checks, and Data Protection keys. Not a zip-deploy tutorial.
Angular HTTP interceptors for ASP.NET Core JWT — bearer attach, in-memory access tokens, and single-flight refresh overview. Concurrent 401 queues and 401 vs 403 have dedicated guides.
Fix CORS between Angular and ASP.NET Core — exact origins, AllowCredentials, OPTIONS preflight, middleware order, Azure App Service, and cookie-based JWT refresh.