La mia domanda non riguarda tanto l'uso delle interfacce, quanto piuttosto la natura di un progetto organizzativo.Le interfacce dovrebbero essere in un progetto separato dalla loro implementazione?
Nota: sto utilizzando VisualStudio in un'applicazione a più livelli.
I file del mio interfaccia devono essere inseriti in un progetto separato dalle rispettive implementazioni? Il mio pensiero iniziale è che sarebbe utile separare tutte le mie interfacce di servizio nel proprio progetto (e un progetto per le mie implementazioni iniziali) in modo che lungo la strada l'implementazione/progetto concreto possa essere rimosso e sostituito con uno nuovo se necessario.
Per chiarire con un esempio: Supponiamo di avere un'interfaccia del livello aziendale denominata IBusinessService che risiede nello spazio dei nomi MyApp.Business.Services. La mia implementazione FooBusinessService esisterebbe nello stesso spazio dei nomi, ma un progetto diverso in VisualStudio. Se in seguito l'implementazione dovesse essere rielaborata, uno sviluppatore potrebbe rimuovere il riferimento a FooService.proj e sostituirlo con un riferimento a BarService.proj.
Sembra che questo declutter la soluzione dell'app consentendo di fare riferimento a un progetto con solo interfacce senza acquisire anche implementazioni concrete (che potrebbero essere obsolete o inutili), ma mi manca qualcosa?
possibile duplicato di [Devo avere un assembly separato per le interfacce?] (Http://stackoverflow.com/questions/3363312/should-i-have-a-separate-assembly-for-interfaces) – nawfal