Architektura n-tier a DI

0

Mam pytanie dotyczące architektury n-tier w ASP.NET MVC. Załóżmy że mamy trzy warstwy w osobnych projektach:

  • Core - widoki, kontrolery, główny projekt (referencja do Services)
  • Services - serwisy (referencja do DAL)
  • DAL - repozytoria, kontekst Entity Framework

Chcę do tego użyć wzorzec IoC wykorzystując Unity. Kontrolery przyjmują interfejsy serwisów, a serwisy przyjmują interfejsy repozytoriów. Jak w takim razie skonfigurować Unity skoro (zakładając że jest w projekcie Core) ma on dostęp jedynie do warstwy Services, gdy ja potrzebuję dodać jeszcze repozytoria?

0

Jeżeli dobrze zrozumiałem o co Ci chodzi, to tutaj masz masz podobny wątek.

0

Jednym z moich pomysłów jest stworzenie kolejnego projektu "DI", który miałby referencje do serwisów i DAL. Ów projekt tworzyłby konfigurację którą pobierałaby sobie warstwa Core, która jako jedyna miałaby referencje do DI. Tyle że może na tym ucierpieć niezależność warstw. Wołam @somekind, bo zna się na tych klockach : ) Drugim pomysłem jest po prostu dodanie w Core referencji do DAL, ale to już całkiem traci przejrzystość.

0

W AutoFacu po prostu używa się modułów, Unity zdaje się ich nie posiada, więc podejście wskazane przez Seemanna jest na pewno dobre. W końcu napisał o tym książkę. ;)

0

Jeszcze podczepiając się do tematu:

Mamy następujący projekt podzielony na mniejsze części:

  • Core - widoki, projekt MVC
  • Controllers - kontrolery, filtry
  • Services - serwisy
  • DAL - repozytoria, modele itp.

W której z tych warstw ładuje się jakieś pliki z serwera?

0
Budyń napisał(a):

W której z tych warstw ładuje się jakieś pliki z serwera?

Co dokładnie masz na myśli? Chodzi o upload plików przez użytkownika?

0

@somekind - chodzi mi bardziej o sytuację, kiedy mamy na serwerze jakiś xml z konfiguracją, którą chcemy wczytać i potem coś z nią zrobić w serwisie. I teraz jest pytanie czy to ładowanie pliku wepchnąć do kontrolera przed wywołaniem serwisu czy robić to już bezpośrednio w serwisie odpowiedzialnym za konfigurację.

0

Ja bym wczytywał konfigurację raz, przy uruchomieniu aplikacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1