Iniezione delle dipendenze e radice di composizione

2

Recentemente ha iniziato a cogliere MVC e modelli di design. (ritorno a scuola a 34;))

Mi è stato chiesto dal mio insegnante di progettare un'applicazione in due parti. È un sito web di ricette che come app di amministrazione di WinForms.

Ho iniziato a sviluppare il mio dominio principale, quindi sono passato alla persistenza e poi spostato all'applicazione MVC Web ... e poi ho iniziato a leggere su Dependency Injection. Così ho fatto un po 'di ricerche e ho deciso di andare con Autofac solo per applicare DIP tra core e persistenza.

E poi ho letto su Composition Root e afferma che il contenitore IoC dovrebbe rimanere il più vicino all'inizio del tuo applicazione. Giusto abbastanza, ma il mio problema si trova su:

a) Quando passo alla mia app WinForms non ho bisogno di rifare il contenitore IoC per questo?

b) Non sarebbe meglio avere un livello intermedio che si occupasse di DI tra tutti i livelli?

    
posta João Sequeira 05.03.2017 - 03:24
fonte

1 risposta

1

Quindi, dalla mia esperienza personale, ho trovato DI come caso specifico per ogni tipo di app che stai sviluppando. Abbiamo adottato l'approccio per definire roba simile a un ciclo di vita di richiesta web per alcune dipendenze, ma una volta che si passa alla creazione di un processo di elaborazione in background, non c'è improvvisamente HttpContext a cui legare alcune delle dipendenze. Quindi, per questo motivo abbiamo optato per garantire che abbiamo alcuni test per garantire che abbiamo configurato correttamente il contenitore IoC (abbiamo optato per utilizzare CastleWindsor) in modo che se le diverse applicazioni riutilizzassero gli elementi del livello di servizio saremo in grado di essere in grado di capire perché è successo. A volte ci perdiamo nella scrittura di codice riutilizzabile SOLO e dimentichiamo che a volte il contesto di un problema richiede un approccio separato per consentire facili cambiamenti quando cambiano i requisiti del contesto specifico.

Quindi in breve le mie risposte alle tue domande:

a) Sì, dovrai ripristinare l'impostazione del contenitore IoC, ma probabilmente sarà così perché i cicli di vita delle tue dipendenze saranno intrinsecamente diversi. b) Spostarlo su un determinato livello potrebbe consentire il riutilizzo, ma il giorno in cui ogni contesto richiede un approccio diverso, il livello diventerà ridondante e sarà più facile vivere con la gestione di questo.

    
risposta data 15.06.2017 - 15:39
fonte

Leggi altre domande sui tag