Recentemente ho approfondito la programmazione più "organizzata" e ho imparato che avrei dovuto programmare su un'interfaccia, non su un'implementazione. Con questo in mente, sarebbe meglio "disegnare" un progetto in interfacce prima di scrivere l'implementazione per esso dove possibile?
E se questo è il caso, nel caso di utilizzo di librerie di terze parti (ad esempio Lidgren), dovrei anche avvolgere quelle nelle interfacce e risolverle attraverso i contenitori IOC, o è giusto esporle alle interfacce?