Performance .NET: Il Costo Nascosto della Dependency Injection
Ogni applicazione .NET inizia con un controller pulito e due dipendenze. Poi arriva la realtà: dieci servizi iniettati, tutti istanziati a ogni richiesta, che vengano usati o no.
Questa sessione analizza il costo nascosto dell’iniezione costruttore su scala e mostra come due strumenti lo eliminano senza toccare la logica di business.
Lazy e DryIoc
Inizieremo con Lazy e DryIoc: come differire la costruzione dell’oggetto al momento esatto in cui serve, come gestire i riferimenti circolari con eleganza, e come misurare l’impatto con Microsoft Aspire.
Spoiler: una riduzione di 4-5 volte nel tempo di costruzione DI, nelle allocazioni heap e nella pressione GC su endpoint reali di produzione.
Il Secondo Nemico
Poi passiamo al secondo nemico: operazioni semplicemente lente per natura - stampa in massa, email bulk, generazione di report pesanti.
Cammineremo attraverso uno SpoolerStampa reale costruito con Hangfire: job fire-and-forget, distributed locking per prevenire race condition, progress polling dal frontend, serializzazione dell’identità al di fuori della pipeline HTTP, e quella riga che non devi mai rimuovere (throw) se vuoi che i retry funzionino davvero.
Conclusione
Alla fine, avrai un playbook concreto per spegnere lo spinner e mantenere i tuoi utenti in vita.
