Come impostare il controllo del codice sorgente con più prodotti, tutti dipendenti da una libreria a singola classe

StackOverflow https://stackoverflow.com/questions/1406653

Domanda

Sono CTO e unico sviluppatore per la mia azienda. Mi sto preparando ad assumere il nostro primo sviluppatore e forse un secondo entro i prossimi 6-12 mesi. Sono imbarazzato nel dire che non ho mai usato il controllo del codice sorgente come parte del mio flusso di lavoro. Suppongo che essere un team di sviluppo composto da 1 membro mi abbia permesso di essere un po 'pigro. Non è che non volessi, ho solo un po 'di un blocco mentale su come iniziare.

Abbiamo 5 applicazioni Web che ho creato e gestito. Usiamo ASP.NET e ogni app Web fa riferimento a una singola libreria di classi .NET (DLL) che è stata copiata nel "bin" cartella per ogni app. Ho sviluppato con un'unica soluzione di Visual Studio " soluzione " che include la libreria di classi e tutte le app Web. Sono un po 'gonfio, ne sono certo, ma questo metodo mi ha reso facile minimizzare gli errori permettendomi di fare operazioni globali di ricerca e sostituzione su tutte le mie app (e la libreria di classi) allo stesso tempo.

Mi rendo conto che l'implementazione del controllo del codice sorgente è un grande cambiamento nel mio flusso di lavoro da solo, ma anche l'introduzione di un altro sviluppatore nel mio processo mi ha un po 'sopraffatto. Sto cercando assistenza su come sviluppare un flusso di lavoro che consentirà al mio piccolo team di spostarsi rapidamente senza processi ingombranti. Vorrei evitare discussioni su quale sistema SCC scegliere (useremo Mercurial). Sono più interessato a discutere la struttura e gli aspetti del flusso di lavoro di questo.

Ecco le domande con cui ho bisogno di aiuto:

  1. Devo dividere ciascuna app in un "progetto" separato o tenerli tutti insieme in modo da poter continuare a beneficiare delle operazioni globali di ricerca e sostituzione quando necessario. Sono preoccupato di dividerli a causa della situazione della biblioteca di classe (vedi # 2).

  2. Se suddivido le app in progetti separati, non sono sicuro di come procedere con la libreria di classi di cui ogni progetto necessita una copia. Ad esempio, supponiamo che le modifiche a una delle app (chiamalo "progetto 1") richiedano una modifica alla libreria di classi ... se la libreria di classi si trova in un progetto separato (chiamalo "progetto 2") , sembra "disordinato" per me quel progetto 1 dipenderà dalle ultime modifiche al progetto 2 per funzionare correttamente. In alternativa, apporti semplicemente le modifiche al progetto 2 (la libreria di classi), archiviali e quindi copia la dll appena compilata nel progetto 1 (ma la nuova copia della dll da copiare nel progetto 1 non dovrebbe essere registrata in la SCC in qualche modo). Mi sto confondendo anche mentre scrivo questo ...

Grazie in anticipo per il tuo aiuto.

È stato utile?

Soluzione

Innanzitutto, congratulazioni per aver deciso di utilizzare finalmente il controllo del codice sorgente. So che cambiare le tue abitudini può essere frustrante, ma a lungo andare sono sicuro che ne vedrai i benefici.

  1. Non c'è niente di sbagliato in una soluzione che contiene più progetti. In genere tengo il mio a circa 10, ma è semplicemente per migliorare i tempi di caricamento. Se tenerli insieme funziona meglio per te, lascialo così. L'uso del controllo del codice sorgente non avrà alcun effetto su questo.
  2. Per quanto riguarda la biblioteca di classe, penso che ciò che devi fare sia cambiare il modo in cui apporti le modifiche al progetto della biblioteca piuttosto che il modo in cui usi i progetti che lo fanno riferimento. Implementa i test unitari sul progetto della libreria per imporre la compatibilità con le versioni precedenti in modo da sapere che la caduta dell'ultima versione della libreria non danneggerà la tua app. Probabilmente scoprirai che ciò non sarà vero alcune volte, ma man mano che sviluppi più test unitari per gestire casi limite ciò accadrà sempre meno.

Altri suggerimenti

Puoi avere più progetti in una singola soluzione di Visual Studio. Quello che ho fatto in passato è avere il progetto ASP.NET e il progetto della libreria di classi nella stessa soluzione. Puoi fare in modo che il tuo progetto ASP.NET faccia riferimento al progetto della libreria di classi (Aggiungi riferimento e quindi vai alla scheda Progetti per mostrare altri progetti nella stessa soluzione). In questo modo, ogni volta che si modifica la libreria di classi, l'applicazione ASP.NET verrà compilata utilizzando l'ultima versione della libreria di classi. È possibile impostare più soluzioni, una per ogni applicazione ASP.NET con ciascuna soluzione incluso il progetto libary di classe.

Potresti anche installare una soluzione di grandi dimensioni con tutti i tuoi progetti ASP.NET e la tua libreria di classi, ma potrebbe essere un po 'difficile lavorare con, in particolare con più sviluppatori che lavorano su diverse pagine ASP.NET.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top