2013-02-07 16 views
5

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

  1. Podmiot POCO
  2. Podmiot DataContext: DbContext
  3. Podmiot Repository

BL

  1. Podmiot ViewModel
  2. jednostką usługową (instancję Entity Repository)

WEB

  1. 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ć)

+0

Nie jestem do końca pewien, dlaczego wspomniałeś, że trudno jest utrzymać projekt. Jaką warstwę uważasz za trudną do utrzymania? –

+0

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

+1

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" :). –

Odpowiedz

5

Można użyć thisthis i this artykuł.

An experienced Architect does not need to go through every single step in the book to get a reasonable design done for a small web 

aplikacji. Architekci tacy mogą wykorzystać swoje doświadczenie, aby przyspieszyć proces . Ponieważ wcześniej robiłem podobne aplikacje internetowe i zrozumiałem, że moja dostawa jest zrozumiała, zamierzam przyjąć szybsze podejście do , aby uzyskać wstępną część naszego projektu DMS. Mamy nadzieję, że pomógł mi skrócić czas trwania tego artykułu.

For those who do not have experience, let me briefly mention the general steps that involved in architecturing a software below... 

Understand the initial customer requirement - Ask questions and do research to further elaborate the requirement 
Define the process flow of the system preferably in visual (diagram) form. I usually draw a process-flow diagram here. In my 

wysiłek, chciałbym spróbować zdefiniować ręcznego wersję systemu pierwszej a potem spróbuj przekonwertować do zautomatyzowanej wersji podczas identyfikacji procesów i ich stosunki. Ten diagram przepływu procesu, który tutaj narysujemy, może być używany jako medium do sprawdzania spełnionych wymagań klienta również. Identyfikacja modelu rozwoju oprogramowania zgodnego z Twoimi wymaganiami Gdy wymagania zostaną w pełni przechwycone i zdefiniowane przed rozpoczęciem projektu, możesz użyć modelu "Upadek wody".Ale gdy wymagania są nieokreślone, można użyć wariantu "Spirala", aby poradzić sobie z tym . Gdy wymagania nie są zdefiniowane, system zostaje zdefiniowany podczas jego projektowania. W takich przypadkach należy zachować odpowiednie przestrzenie w odpowiednich modułach, których późniejsza ekspansja jest oczekiwana. Zdecyduj, jakiej architektury użyć. W moim przypadku, aby zaprojektować nasz system zarządzania dokumentami (DMS), użyję kombinacji architektury ASP.NET MVC i architektury wielopoziomowej (Wariant 3-wariacyjny): . Analizuj system i identyfikuj jego moduły lub podsystemy.
Wybierz jeden system podrzędny na raz i poddaj go dalszej analizie oraz określ wszystkie wymagania dotyczące poziomu ziarnistości należące do tej części systemu. Rozpoznawanie jednostek danych i definiowanie relacji między jednostkami (diagram zależności encji lub diagram ER). To może , a następnie identyfikacji podmiotów gospodarczych (Niektóre podmioty gospodarcze bezpośrednio mapować z klasami systemu) i zdefiniować przepływ procesu biznesowego . Organizuj swoje jednostki. Tutaj normalizujesz swoją bazę danych i decydujesz, jakie koncepcje OOP i jaki wzór wzorcowy będzie używany itd.
Ulepsz swój projekt. Zastosuj te same standardy we wszystkich modułach i warstwach. Obejmuje to uproszczenie koncepcji (np. przykład, jeśli użyłeś dwóch różnych wzorców projektowych w dwóch różnych modułach , aby osiągnąć ten sam cel, wybierz lepsze podejście i użyj go w obu miejscach) i konwencje używane w projekt. Dostrajanie projektu to ostatnia część procesu. Aby to zrobić, musisz mieć spotkanie z zespołem projektowym. Podczas tego spotkania musisz przedstawić swój projekt zespołowi i poprosić go o zadawanie pytań na temat tego pytania: . Weź to jako okazję do uczciwej oceny/ dostosuj swój projekt.

+0

Czy mógłbyś wyraźnie zaznaczyć, że jest to długa oferta z pierwszego numeru referencyjnego, a także lista numerowana? Dzięki. Dobrze, że nie dałeś odpowiedzi tylko na link. –

Powiązane problemy