7

sto cercando di introdurre la metodologia di programmazione DI/IOC nel nostro gruppo di sviluppo, ma uno dello sviluppatore invitati alla seguente domanda:aiuto per raggiungere DI/IOC in casa

Perché ne abbiamo bisogno? C'è qualche esempio concreto che possa mostrarmi il vantaggio dell'utilizzo di framework DI/IoC come il castello di windsor?

Pertanto, sto chiedendo se ci sono casi di studio o articoli là fuori che dimostrano che DI/IoC può beneficiare di un sito Web .NET di livello aziendale?

Grazie in anticipo

Aggiornamento: Sono a conoscenza di tutti i benefici di DI/CIO porta, ma devo ancora vedere un esempio completo sul web che passa attraverso un intero processo di creazione di un'applicazione che utilizza DI/IoC e ne beneficiano. Ancora una volta, qualsiasi articolo o link sarebbe apprezzato.

+3

Sarei diffidente quanto lo sviluppatore se stessimo cercando di introdurre una metodologia di programmazione per il mio progetto e non potessimo rispondere a questa domanda. – JoshJordan

+0

Concordato con Josh, se suona e sembra olio di serpente, probabilmente lo è ... (a meno che non sia io che sto cercando di insegnare TDD alla squadra, LOL) – dferraro

risposta

6

Sto lavorando su un progetto in cui posso vedere almeno tre vantaggi per Dependency Injection e Inversion of Control:

  1. Il DI flessibilità e, in misura minore, CIO consentono in quanto riguarda test unitario. Possiamo concentrarci su un particolare aspetto del codice (o del sistema in prova) e testare questo bit di funzionalità senza dover preparare una tabella di database o essere soggetti ai capricci delle sezioni di codice che non ci interessano al momento.

  2. Iniettare le dipendenze tramite IoC è una cosa automatica abbastanza semplice e consente alle persone di lavorare sulla logica senza richiedere che le classi di supporto sottostanti siano complete. Ad esempio, posso scrivere una pagina Web che mostra un elenco di utenti senza aver scritto alcun codice per recuperare tali informazioni dal database. Questo può essere scritto da qualcun altro, possibilmente in parallelo, quindi più lavoro può essere fatto in meno tempo.

  3. In uno dei miei progetti attuali, voglio avere la possibilità di dimostrare l'interfaccia utente Web e l'elaborazione back-end a uno degli stakeholder. Questo è reso molto più facile da DI e IoC perché posso avere una collezione di falsi che forniscono i dati esatti di cui ho bisogno per condurre la demo. In questo modo, non esagero il giorno prima a fare in modo che le tabelle del database vengano compilate nel modo in cui mi aspetto che siano.

DI incoraggia un accoppiamento lasco tra una particolare classe e le sue dipendenze, mentre IOC ci permette di configurare dinamicamente quali implementazioni di queste dipendenze sono iniettati in classi che li utilizzano. Quest'ultimo aspetto è importante rispetto al n. 3, in quanto la mia applicazione web verrà maggiormente configmata con IoC in base alle impostazioni che ho apportato al file web.config. Dovrò cambiare solo quel file quando andremo in produzione e inizieremo a usare classi non false.

6

Per citarne i pochi vantaggi particolari:

  • Cleaner codice, che porta l'essenza della vostra logica di business in esso, non lo spessore infrastrutturale
  • DI permette di creare applicazioni più modulari, fornendo un meccanismo per disaccoppiare i livelli dell'app
  • IoC consente di esternalizzare il cablaggio dell'applicazione/bootstrap e fornisce una gestione delle risorse centralizzata (in un certo senso) (in una certa misura).Implicazione - si ha più tempo per concentrarsi sulla logica effettiva funzionalità/incassi

alcune utili informazioni su CIO e DI può essere letto qui: http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25

Concesso si tratta di Spring Framework, si applicano ancora concetti generali DI .

Problemi correlati