Sviluppo di un'architettura a 3 livelli per una webapp MVC4 + EntityFramwork5. Voglio mantenere separato il livello, quindi solo DAL sa che sto usando EF, per esempio.ASP.NET MVC4 Architettura n-Tier: approccio migliore
In realtà ho un sacco di classi per la gestione che:
DAL
- entità POCO
- Entity DataContext: DbContext
- Entity Repository
BL
- Entity ViewModel
- Entity servizi (istanziare Entity Repository)
WEB
- entità Controller (un'istanza di entità di servizio)
Questo è il lavoro ma è abbastanza difficile da mantenere. Stavo pensando di rimuovere l'Entity Repository in DAL e utilizzare direttamente DataContext (se non sbaglio, dopotutto DbContext è stato designato come Repository e Unit of Work), ma questo mi costringerà ad aggiungere un riferimento a EntityFramework.dll nel mio BL. Non è un grosso problema, ma non sono sicuro che sia la scelta migliore.
Qualche consiglio?
(spero ho dato sufficienti informazioni, se avete bisogno di più, basta chiedere)
Non sono del tutto sicuro del motivo per cui si dice che è difficile mantenere il vostro progetto. Quale strato pensi sia difficile da mantenere? –
Ad esempio, se aggiungo un campo a un POCO, dovrò aggiornare il datacontext (non sempre), il repository dal, il modello di visualizzazione BL, il servizio BL .. non pochi .. ma probabilmente è un must in questa struttura (o un errore di desing) – Davide
hi @Davide, è possibile applicare alcuni schemi di progettazione GOF anche per il proprio progetto. Ad esempio, se puoi aggiungere un campo a un POCO, puoi usare il modello "Builder" :). –