Abbiamo diversi progetti nel controllo del codice sorgente per applicazioni web e desktop. Invariabilmente, molti di loro usano progetti open source di terze parti o anche librerie comuni all'interno della nostra organizzazione come dipendenze.
Dovremmo includere i progetti completi di queste dipendenze nelle nostre varie soluzioni? O dovremmo semplicemente includere il riferimento .dll (o l'equivalente binario compilato) e mantenere l'origine per detta dipendenza altrove (ad esempio, solo a scopo di debug)?
In particolare sto pensando a progetti e soluzioni .NET in Visual Studio, ma sentitevi libero di sostituire questi termini con JAR o qualsiasi altro equivalente in altri linguaggi e framework.
Per specificare ulteriormente, ti sto chiedendo se una struttura di una finca di app Web per fatture [fittizie] dovrebbe assomigliare a questa:
- InvoicePaymentsWeb
- InvoicePaymentsDataModel
- InvoicePaymentsServices
- RickSoftUltraDataGrid
- MyCompanyCommonWebLib
E potresti compilare individualmente (o modificare) le varie dipendenze poiché esistono interamente nella tua soluzione. Al contrario di avere solo i primi tre progetti, fare riferimento alle DLL compilate degli altri due e avere l'origine per gli altri due presenti altrove sulla tua macchina (o altrove nel controllo del codice sorgente).
Mi chiedo se questo non possa potenzialmente fratturare lo sviluppo e / o la manutenzione delle varie dipendenze poiché ogni soluzione potrebbe avere le sue specifiche modifiche alla sorgente, a meno che il controllo sorgente sottostante gestisse la condivisione interna dei progetti. Quali altri problemi potrebbero esistere? Ci sarebbe qualche vantaggio?