Il contenitore IoC dovrebbe essere parte della libreria portatile?

4

Vedo i vantaggi di Librerie di classi portatili per la centralizzazione di Models e ViewModels su un unico code-base. Dove dovrebbe avvenire la gestione delle dipendenze (contenitore IoC)? I miei modelli hanno dipendenze che credo possano trarre beneficio dall'iniezione tramite iniezione. Non sono sicuro di come fare "bootstrap" per impostare il contenitore nella libreria portatile, e ho anche visto alcuni suggerimenti che una libreria portatile non dovrebbe avere una dipendenza da un framework DI. Questi punti mi fanno pensare che il DI dovrebbe essere impostato nelle applicazioni che usano la mia libreria portatile. Questo sembra piuttosto al contrario, richiedendo a qualcuno che usa la libreria di aggiungere la porzione di bootstrap alla propria applicazione, così come sarebbe duplicata in ogni app che usa la libreria. La libreria o l'applicazione devono gestire DI?

Alcune specifiche su come è il mio ambiente in questione: c #, applicazione WPF che fa riferimento a PCL con Modelli, ViewModels e logica principale. Considerando l'utilizzo di Autofac per il mio contenitore IoC.

    
posta Ethan 24.01.2014 - 23:42
fonte

3 risposte

1

Se hai bisogno di IoC nella tua libreria, potrebbe essere utile fornire degli hook in modo che un utente possa utilizzare gli stessi contenitori, ma non lo richiede poiché lo sviluppatore potrebbe voler usare qualcos'altro.

Quindi rendilo disponibile poiché lo includi, ma non limitare le opzioni del programmatore, se possibile.

    
risposta data 15.02.2014 - 04:16
fonte
1

Usiamo ninject su un progetto interno, quello che sto facendo è impostare un modulo installer per le librerie in modo che quando faccio riferimento a loro, posso semplicemente passarlo alla configurazione del kernel nel progetto principale.

Questo sembra essere il migliore di entrambi i mondi, non c'è una reale dipendenza da ninject nella libreria poiché non è necessario utilizzare il modulo, ma accelera le cose se lo si fa.

    
risposta data 15.02.2014 - 13:46
fonte
0

No, IoC non rientra nello scopo di una libreria di solito, in quanto ne restringe l'uso. Se la biblioteca è solo per uso personale, ovviamente, puoi fare tutto ciò che desideri.

    
risposta data 15.02.2014 - 02:34
fonte