Fondamentalmente lo scenario è questo:
-
Esiste una versione principale di un'applicazione ma è modificata per ogni client. Lo sviluppo avviene solitamente attraverso la versione attualmente in lavorazione
-
Tutte le altre versioni dovrebbero essere aggiornate dopo l'aggiunta di nuove funzionalità o correzioni di errori
-
L'applicazione è scritta in ASP.NET MVC C #
-
Git viene utilizzato per il controllo del codice sorgente e vi è una versione del server per ciascun progetto. Branching è usato principalmente per lavorare su diverse funzionalità
Ecco le mie opinioni sul problema:
Poiché la versione modificata corrente è l'ultima e aggiungo una funzione, devo aggiungerla in qualche modo a tutti gli altri progetti. Lo stesso vale per i bug di correzione. Farlo manualmente è fuori questione quindi suppongo di dover usare un modo complesso di controllo e fusione delle versioni?
È persino possibile tirare fuori? Temo che ad un certo punto (20 versioni) sarà impossibile tenere il passo con ciò che è stato. Il problema è che non vedo altre soluzioni ...
Modifica (Non ci sono molte proposizioni per la soluzione in questo o nell'altro argomento):
Come avete detto voi, è una cattiva idea avere molte versioni ed è meglio averne una in grado di gestire tutti gli scenari ma non si è detto molto su come gestire questo problema?
-A qualcuno ha detto che il design modulare (plug-in) sarebbe buono, ma questo non è il caso dato che ci saranno molte modifiche al codice esistente.
-utilizzando #if?
-utilizzando i file di configurazione? Come funziona esattamente? Non sono stato in grado di trovare alcun esempio