Cartelle o progetti in uno studio di soluzione visiva?

voti
27

Quando spliting una soluzione a strati logici, quando è meglio usare un progetto separato sopra solo raggruppamento da una cartella?

È pubblicato 04/08/2008 alle 23:00
fonte dall'utente
In altre lingue...                            


7 risposte

voti
17

Per impostazione predefinita, sempre e solo creare una nuova cartella all'interno dello stesso progetto

  • Otterrete unico assembly (senza ulteriore ginnastica ILMerge)
  • Più facile da offuscare (perché si avrà tipi e metodi meno pubblici, idealmente nessuno)

Separare il codice sorgente in più progetti ha senso solo se si ...

  • Hanno alcune porzioni del codice sorgente che fanno parte del progetto, ma non schierabili per difetto o in tutto (test di unità, i plugin aggiuntivi ecc)
  • Più sviluppatori coinvolti e si desidera trattare il loro lavoro come scatola nera di consumo. (Non molto consigliato)
  • Se si può chiaramente separare il progetto in strati / moduli isolati e si vuole fare in modo che essi non possono cross-consumare interne membri. (anche sconsigliato in quanto sarà necessario decidere quale aspetto è il più importante)

Se si pensa che alcune parti del codice sorgente potrebbe essere riutilizzabile, ancora non crearlo come un nuovo progetto. Basta aspettare fino a quando si sarà davvero voglia di riutilizzarlo in un'altra soluzione e isolare fuori progetto originale, se necessario. La programmazione non è un lego, riutilizzo è di solito molto difficile e spesso non accadrà come previsto.

Risposto il 04/08/2008 a 23:45
fonte dall'utente

voti
8

Separare le caratteristiche in progetti è spesso un'ottimizzazione dell'architettura YAGNI. Quante volte avete riutilizzato quei progetti separati, in realtà? Se non è un evento frequente, si sta complicando il vostro sviluppo, la costruzione, la distribuzione e la manutenzione per il riutilizzo teorica.

Preferisco di gran lunga la separazione in cartelle (utilizzando namespace appropriati) e refactoring per separare i progetti quando hai un caso d'uso il riutilizzo di vita reale.

Risposto il 17/08/2008 a 18:35
fonte dall'utente

voti
6

denny ha scritto:

Personalmente ritengo che se il codice riutilizzabile è suddiviso in progetti è più semplice da usare luoghi diversi se è solo in cartelle.

Mi è d'accordo con questo - se è possibile riutilizzarlo, dovrebbe essere in un progetto separato. Detto questo, è anche molto difficile da riutilizzare in modo efficace :)

Qui a SO, abbiamo cercato di essere molto semplice, con tre progetti:

  • progetto Web MVC (che fa un bel lavoro di separare i livelli in cartelle di default)
  • progetto di database per il controllo del codice sorgente del nostro DB
  • Prove di unità contro MVC modelli / controller

Non posso parlare per tutti, ma io sono contento di come semplice abbiamo mantenuto esso - velocizza davvero le generazioni insieme!

Risposto il 04/08/2008 a 23:42
fonte dall'utente

voti
4

Di solito faccio un progetto per l'interfaccia grafica di un progetto per la logica di business di un progetto per l'accesso ai dati e un progetto per i test unitari.

Ma a volte è prudente avere la separazione basata su servizi (se si utilizza una Service Oriented Architecture) come l'autenticazione, vendite, ecc

Credo che la regola empirica che io lavoro fuori è che se si può vedere come un componente che ha una chiara separazione degli interessi poi un altro progetto potrebbe essere prudente. Ma penserei che le cartelle contro progetti potrebbero essere solo una preferenza o di filosofia.

Personalmente ritengo che se il codice riutilizzabile è suddiviso in progetti è più semplice da usare luoghi diversi se è solo in cartelle.

Risposto il 04/08/2008 a 23:14
fonte dall'utente

voti
0

Credo davvero che sia meglio dividere il progetto pure, ma tutto dipende dalle dimensioni del progetto e il numero di persone che lavorano su di esso.

Per i progetti più grandi, ho un progetti per

  • accesso ai dati (modelli)
  • Servizi
  • fine frontale
  • test

Ho ottenuto il modello da Rob Connery e la sua applicazione storefront ... sembra funzionare davvero bene.

MVC-storefront

Risposto il 16/09/2008 a 00:45
fonte dall'utente

voti
0

Se andate per la creazione di diversi progetti, assicurarsi che tutti coloro che aggiunge codice per la soluzione è pienamente consapevole dell'intenzione di loro e fare tutto il possibile per far loro comprendere le dipendenze tra i progetti. Se avete mai provato a risolvere il pasticcio quando qualcuno è andato e ha aggiunto riferimenti che non avrebbe dovuto essere lì e fatta franca per settimane si capire questo punto

Risposto il 10/09/2008 a 22:36
fonte dall'utente

voti
0

Separare il codice sorgente in più progetti ha senso solo se si ... ... Più sviluppatori coinvolti e si desidera trattare il loro lavoro come scatola nera di consumo. (Non molto consigliato) ...

Perché non è questo raccomandato? Ho trovato un modo molto utile per gestire applicazioni con più sviluppatori lavorano su porzioni diverse. Rende checkins molto più facile, soprattutto da unioni virtualmente eliminando. Molto raramente avranno due sviluppatori devono lavorare sullo stesso progetto, allo stesso tempo.

Risposto il 17/08/2008 a 18:19
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more