Sì, è sicuro separare la soluzione in progetti più piccoli come MVC, Identity e IoC.
Almeno, questa è la mia risposta breve.
Ha senso? La lunga risposta è un po 'più complicata. Ho risposto ad alcune domande simili prima dove mi rivolgo soluzione e progetto di architettura:
Nella risposta di cui sopra, ho spiegato
[... ] Ho una struttura tipica come questa:
- MyProject.Core
- MyProject.Domain
- MyProject.DependencyInjection
- MyProject.Infrastructure
- MyProject.Web
- MyProject.Tests
Jeffrey Palermo incoraggia l'uso di Onion Architecture.In part 4 of his article on Onion Architecture, Jeffrey fornisce un example solution con la seguente struttura
- Nucleo
- Infrastrutture
- IntegrationTests
- UI
- Unittests
Tuttavia, Jimmy Bogardpo è d'accordo con me e il mio approccio
In Evolutionary Project Structure, Jimmy spiega:
ho usato per la cura di un bel po 'di struttura di progetto in applicazioni. Cercando di applicare la stratificazione logica attraverso progetti fisici, inizierei da un progetto di default per costruire un'app con almeno due progetti, se non di più.
In effetti, Jimmy descrive il suo stile di architettura di soluzione precedentemente preferito come simile allo stile che ho menzionato sopra.
Jimmy va oltre dicendo che "decidere sulla struttura del progetto è uno spreco di tempo ed energia". Preferisce in realtà una struttura di soluzione più semplice. Cioè, molto poco.
Anche se Jimmy fa chiarire la sua posizione dicendo:
Non ho assolutamente nulla contro di progettazione del software a strati. Usando la struttura del progetto di farlo è una perdita di tempo se hai solo 1 app si sta distribuendo [...]
(enfasi mia)
Se si dispone di altre applicazioni che necessitano di riferimento aspetti della tua soluzione MVC, potrebbe essere molto logico dividerli nei propri progetti in modo da poterli facilmente consultare.
Penso che quello che dovremmo concludere che è:
architettura soluzione non è una regola o una legge. Separare i progetti dove ha senso.
Assicurarsi che la soluzione sia facile da gestire e facilmente comprensibile da altri. Non complicare eccessivamente la tua soluzione.
Grazie mille! Questo è estremamente chiaro! –
Risposta piacevole, sono nuovo di DI e sto cercando di capire l'implementazione. Sto pensando di utilizzare Unity, puoi indicarmi un codice sorgente di esempio con la struttura del tuo progetto. –