Passa al contenuto principale

C# / ASP.NET Core

Convenzioni, pattern e riferimenti tecnici per lo sviluppo con C# e ASP.NET Core.

Contenuto

  1. Struttura della solution — organizzazione dei progetti, naming, Program.cs minimal
  2. Switch expression e pattern matching — switch expression, pattern matching, when guard
  3. Rate limitingMicrosoft.AspNetCore.RateLimiting, policy, sliding window
  4. Feature flagMicrosoft.FeatureManagement, flag condizionali, targeting
  5. LoggingILogger<T>, Serilog, sink, log strutturati
  6. Osservabilità — OpenTelemetry, trace, metriche, health checks
  7. Configurazione tipizzataIOptions<T>, IOptionsMonitor<T>, validazione
  8. Code native .NETQueue<T>, ConcurrentQueue<T>, Channel<T>
  9. Librerie per code e job — Hangfire, Quartz.NET
  10. Middleware custom — pipeline, RequestDelegate, gestione errori globale
  11. Action filterIActionFilter, IAsyncActionFilter
  12. Authorization filterIAuthorizationFilter, API key, tenant
  13. Exception filterIExceptionFilter, IAsyncExceptionFilter
  14. Problem Details (RFC 9457) — errori strutturati, ProblemDetails, ValidationProblemDetails
  15. Async / Await — throughput nelle Web API, CancellationToken, anti-pattern
  16. Dependency Injection — lifetimes, captive dependency, keyed services
  17. HttpClient / IHttpClientFactory — typed client, DelegatingHandler, socket exhaustion
  18. Validazione — DataAnnotations, FluentValidation, ValidationProblemDetails
  19. Background servicesBackgroundService, worker pattern, graceful shutdown
  20. CachingIMemoryCache, IDistributedCache, output caching
  21. Resilienza — retry, circuit breaker, timeout con Microsoft.Extensions.Http.Resilience
  22. Records e immutabilitàrecord, with expression, DTO e value object

Entity Framework

Test unitari

  • A cosa servono — logica pura, monitoraggio librerie di terze parti, verifica di comportamenti puntuali

Test di integrazione