dependency-injection-guidelines.md blanket advice on avoiding singletons is misleading

Aperta
#49,140 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
csharp
Ambito
documentation

Direzione di ricerca

Leggi prima docs/core/extensions/dependency-injection-guidelines.md e il PR #47991 collegato, poi esamina la discussione dell’issue per la precisazione prevista. Il lavoro è concluso quando esiste una revisione concordata e tecnicamente accurata, oppure una motivazione della formulazione attuale, che affronti la preoccupazione relativa alle indicazioni generiche sul lifetime.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

:watch: Not Triaged
Describe the issue or suggestion

The following PR introduced new guidelines specifically around using Singleton lifetime in DI-centric application designs: https://github.com/dotnet/docs/pull/47991

The guideline clearly sides with "make everything transient by default" as the safer (major emphasis) and more performant (the last bullet point) approach.

IMO this seems to be giving a dangerously blanket advice to 6-8 million .net developers, nearly-encouraging them to swipe state management problems under the carpet of transient lifetime, instead of striving for clean stateless design and zero-allocations as seems to be the default guideline in the Java/Spring community. I understand the pragmatism of giving .net developers what the author likely saw as a safe "lowest common denominator" approach that'd keep an average LOB development team out of trouble, and in the legacy codebases with no design governance making everything transient by default may indeed be the only viable survival strategy, but framing it as THE best practice for all codebases (no qualification), makes it hard to impossible to advocate for clean stateless-by-default designs now that "Microsoft said it's a bad idea".


Document Details

⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

Lingua principale
Nessun dato sulla lingua
Stelle
4.8k
Fork
6.1k
Merge medio
22h 46m
PR unite (30g)
296

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dotnet/docs

Tutte le issue di dotnet/docs

Issue simili

Altre issue su Documentation

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.