Attualmente abbiamo circa 20 soluzioni. La maggior parte di questi ha diversi progetti, tra cui progetti di condivisione delle risorse, accesso ai dati, ecc. Abbiamo avuto alcuni problemi in cui un appaltatore ha cambiato qualcosa in un progetto comune e inconsapevolmente questo rompe una serie di altre soluzioni. Al momento abbiamo 7 sviluppatori di perm e 3 appaltatori a lungo termine, che presto aumenteranno fino a circa 10.
Attualmente stiamo cercando di decidere una nuova architettura software nella nostra azienda. Attualmente stiamo cercando di decidere se combinare le nostre soluzioni in una singola super soluzione, o avere molte soluzioni più piccole con alcuni bit comuni come una soluzione e un common.dll, ecc. (La mia preferenza).
Come vedo i pro ei contro sono i seguenti:
Soluzione eccellente:
Pro
-
Una soluzione significa che se un progetto comune è rotto non lo farà compilare, in modo da non rompere accidentalmente un altro progetto.
-
Aumenterebbe la possibilità di riutilizzo del codice, eventualmente diminuendo tempo di sviluppo.
-
Alcune applicazioni si sovrappongono in modo massiccio, ospitano diverse applicazioni web una intranet per esempio.
di Con
-
Possibile complessità aggiuntiva della distribuzione.
-
Se viene modificata un'applicazione (A), è possibile testare il bit modificato. Se qualcosa è stato modificato che ha avuto un'altra applicazione (B) ma questa non è stata implementata, la prossima volta (B) è stata modificata e implementata, le modifiche precedenti sarebbero state eliminate e questo potrebbe essere in un'area che non sarebbe stata testata estesamente .
-
La soluzione sarebbe enorme, forse rendendola più complessa e difficile da mantenere, specialmente se si trattava di un'applicazione semplice e indipendente.
Soluzioni multiple
Pro
-
Le applicazioni semplici avranno soluzioni semplici che dovrebbero essere molto facili da mantenere.
-
Implementazione più semplice.
-
Test più facili.
-
Se le DLL delle aree comuni sono referenziate ci sono meno possibilità che una modifica interromperà un'altra applicazione.
di Con
-
Scoraggia il riutilizzo del codice.
-
Se le aree comuni vengono aggiunte come progetti, sarà difficile sapere se una modifica ha infranto un'altra applicazione.
-
Se le aree comuni sono DLL, cambiarle sarebbe un altro passo.
-
Alcune applicazioni "appartengono" insieme in una soluzione, come determinare quali devono essere raggruppate e quali non dovrebbero essere?
Posso chiedere cosa fanno le altre persone qui?
L'area comune dovrebbe essere aggiunta come progetto o come DLL?
Qualcos'altro da considerare?