Organizzazione della soluzione

2

Ho lavorato su applicazioni ASP.net per 6 anni, ma quasi tutto ha esteso e mantenuto le applicazioni esistenti. Ora ho bisogno di sviluppare una nuova applicazione e mi sto grattando la testa :(

C'è molto materiale sui principi e sui modelli di Software Design ma non molto contenuto sull'organizzazione. I vari livelli dovrebbero trovarsi in spazi dei nomi, cartelle o progetti separati?

Ho in programma di creare WCF in futuro, quindi avere un livello di servizio come progetto ha senso, ma non sono sicuro di quanti progetti dovrei avere? Per impostazione predefinita, il sito Web MVC 3 ha Modelli e controllori nello stesso progetto, ha senso separarli in progetti diversi?

Sarei molto grato se qualcuno possa pubblicare una schermata della soluzione MVC 3 ben organizzata.

Capisco che ciò dipenda probabilmente dalle preferenze personali e dalle dimensioni del progetto, ma ho bisogno di un qualche tipo di guida. La nostra applicazione principale ha oltre 70 progetti in una soluzione mastodontica ... Per favore aiutami a evitare questo.

Grazie mille.

    
posta mob1lejunkie 06.06.2011 - 13:25
fonte

2 risposte

3

Alcuni direbbero che 70 progetti non sono irragionevoli, tuttavia il mio approccio è sempre stato quello di separare i progetti da quelli che potrebbero essere usati da più di un altro progetto.

Non c'è giusto e sbagliato in questa situazione, tuttavia ho visto persone separare il codice in progetti con poco valore, quindi fatelo quando ha senso, dopotutto, potreste separare il codice in cartelle separate (e namespace) ), e non dimenticare che il codice di separazione in un progetto separato è, cosa, un lavoro di 10 minuti?

Direi che per un progetto MVC sarebbe una buona pratica separare il tuo livello del modello in un progetto separato, perché i livelli di persistenza non dovrebbero mai, IMO, essere assorbiti in alcun progetto di visualizzazione (UI). Potresti fare lo stesso anche per il livello Controller, non sarebbe male avere 3 progetti, ma sarebbe piuttosto improbabile che il livello Controller venisse riutilizzato, ho sempre pensato che View & Il controller era quasi tutto il tempo strettamente vincolato, in cui, come il tuo livello del modello, poteva essere riutilizzato da un altro sito Web, ad esempio un'applicazione per Windows o console.

My 0.02p

    
risposta data 06.06.2011 - 13:51
fonte
0

Tendo a posizionare il codice dell'interfaccia utente in un assembly separato. Quindi ci sarebbe un assembly MVC o Web o Win a seconda della mia implementazione. Il bit condiviso della soluzione che avrei inserito in un assembly separato. Lo dividerei ulteriormente solo se è veramente necessario; altrimenti uso solo le cartelle.

Separare l'accesso ai dati potrebbe essere necessario se si finisce per utilizzare un altro tipo di archivio dati. Ma, ancora una volta, lo farei solo quando sarà necessario.

Non è necessario separare i modelli o i controller. Per un'architettura plug-in, puoi guardare Controller / Modelli / Viste in assembly separati, ma ciò richiederebbe un po 'di riflessione.

L'unica cosa di cui bisogna guardarsi è un accoppiamento stretto quando tutto è nello stesso assembly poiché tutto è raggiungibile.

    
risposta data 06.06.2011 - 14:08
fonte

Leggi altre domande sui tag