Attualmente sto costruendo un grande framework il cui scopo è quello di eseguire diversi algoritmi in sequenza.
Molti di questi algoritmi hanno interdipendenze nella struttura dei dati - l'output di un algo è l'input di un altro algo, ad esempio MagicVectorXY. Gli algoritmi devono essere modulari e compatti, poiché alcuni di questi algoritmi saranno riutilizzati in molti altri framework separati. E vogliamo evitare il più possibile il codice irraggiungibile.
La nostra soluzione attuale è quella di compilare ciascun algoritmo nella sua .dll, mentre le interfacce condivise / le librerie matematiche di terze parti / le strutture di dati condivise risiedono in un CommonInterfaces.dll. Tuttavia, questo porta alla proliferazione di progetti nella soluzione di Visual Studio, e c'è ancora un codice irraggiungibile significativo in CommonInterfaces.dll.
Quali altre strategie ci sono per gestire un framework così modulare?
PS: prevediamo ~ 10 algoritmi, e cose come il livello database, WCF, scheduling e test unitari per ogni progetto sono anch'essi tutti progetti propri. Quindi circa 25-30 progetti stimati in quella singola soluzione.