Attualmente ho una soluzione singola che contiene sia l'unica applicazione sviluppata finora e progetti per tutte le librerie homegrown. L'intera soluzione è anche conservata in un unico repository Git. Sto ora sviluppando una seconda applicazione che farà uso di quelle stesse librerie. Quell'applicazione avrà cicli di rilascio diversi rispetto alla prima e alle diverse versioni. La domanda (o le domande) che ho è come suddividere il codice, sia in termini di soluzione, sia in termini di Git.Suddivisione di una soluzione .NET/repo Git per più app
pochi altri dettagli utili prima di parlare di risposte:
- Le applicazioni sono distribuite su un'unità di rete condivisa, non ai singoli computer, in modo da avere il controllo completo su quando vengono distribuiti e ciò che viene schierato con li
- Le DLL di libreria non vengono condivise dalle applicazioni una volta create. Ogni applicazione ha nella sua cartella una copia completa di tutte le DLL, PDB e file di configurazione.
- Attualmente, sono l'unico a fare le versioni, ma un'altra o due potrebbero finire per fare le versioni, quindi mi piacerebbe tenerlo a mente.
Ho girato un paio di idee nella mia testa, ma nessuna sembra soddisfacente. Ho considerato di tenere tutto in un'unica soluzione/un repository Git. Ho anche pensato di suddividere la soluzione su diversi repository Git usando i sottomoduli, ma i sottomoduli sono ingombranti. Ho anche pensato di rendere ogni applicazione la sua soluzione e tutte le librerie in un'altra. La domanda quindi è se posso avere più soluzioni aperte in Visual Studio. Le librerie spesso hanno bisogno di cambiare con le applicazioni, quindi separarle troppo in soluzioni separate o Git repos renderà difficile mantenere sincronizzate le librerie e le app. Un'altra preoccupazione che ho è ramificazione. Se divido la soluzione in diversi repository Git, posso avere filiali per ogni applicazione, ma se tengo un repository Git, posso avere solo un set di rami per tutto.
Forse non sto nemmeno ponendo le domande giuste a me stesso, ed è anche possibile che io abbia solo un blocco mentale che mi impedisce di risolvere una soluzione semplice. Ad ogni modo, rimando alla comunità SO per darmi qualche idea. Spero che tutto sia chiaro, ma in caso contrario, sarò lieto di chiarire.
Non so se sia necessario avere le librerie in repository separati. Sto bene con un solo repository per tutte le librerie. Sono un po 'confuso dalla tua ultima frase, però. – siride
Sta dicendo che se si utilizzano collegamenti simbolici alle librerie, è possibile mantenerli in una soluzione separata ma anche fare riferimento alle librerie come progetto nelle due soluzioni di app. Poiché i collegamenti simbolici puntano tutti agli stessi file, qualsiasi modifica apportata durante lo sviluppo di entrambe le app avrà conseguenze su entrambe le app. Questo renderà così non hai bisogno di sottomoduli. –
Sembra che sia solo un sottomodulo di un povero uomo e non amichevole per altri sviluppatori che potrebbero lavorare al progetto. Penso che dovrò andare con i sottomoduli in un modo o nell'altro. – siride