Rozwijam architekturę 3-poziomową dla webap MVC4 + EntityFramwork5. Chcę zachować separete warstwę, więc tylko DAL wie, że używam EF, na przykład.ASP.NET MVC4 Architektura n-Tier: najlepsze podejście
Właściwie mam dużo zajęć, aby zarządzać że:
DAL
- Podmiot POCO
- Podmiot DataContext: DbContext
- Podmiot Repository
BL
- Podmiot ViewModel
- jednostką usługową (instancję Entity Repository)
WEB
- Kontrolery jednostki (instancję jednostką usługową)
To jest praca ale jest dość trudny do utrzymania. Pomyślałem o usunięciu repozytorium jednostek w DAL i użyciu bezpośrednio DataContext (jeśli się nie mylę, po tym, jak wszystkie DbContext zostało utworzone jako repozytorium i jednostka pracy), ale to zmusi mnie do dodania odniesienia do EntityFramework.dll w moim BL. Nie jest to duży problem, ale nie jestem pewien, czy to najlepszy wybór.
Każda rada?
(mam nadzieję, że dałem wystarczająco dużo informacji, jeśli potrzebujesz więcej, po prostu zapytać)
Nie jestem do końca pewien, dlaczego wspomniałeś, że trudno jest utrzymać projekt. Jaką warstwę uważasz za trudną do utrzymania? –
Na przykład, jeśli dodaję pole do POCO, będę musiał zaktualizować datacontext (nie zawsze), repozytorium dal, model widoku BL, usługę BLK .. niewielu ... ale prawdopodobnie jest koniecznością w ta struktura (lub błąd desing) – Davide
hi @Davide, możesz zastosować niektóre wzorce projektowe GOF dla projektu ur. Na przykład, jeśli możesz dodać pole do POCO, możesz użyć wzorca "Builder" :). –