2011-09-01 12 views
19

Pracuję na agile projektu MVC3 i to zaczyna być dość duże, a konkretnie mój punkt zarządzania, gdzie użytkownik jest w stanie ustawić wiele konfiguracji, itd. To jest mój pierwszy projekt MVC3, więc jestem po prostu ciekawy kiedy ma sens korzystanie z obszarów?MVC3 Kiedy używać obszarów?

Jak jak duża powinna sterownik dla określonej sekcji, takich jak zarządzanie być zanim zdecydujesz się złamać go na powierzchni i tworzenia sterowników dla poszczególnych operacji zarządzania?

Również podczas korzystania z obszarów, powinienem użyć obszarów byłaby za wszystko, czy tylko dla odcinków, które potrzebują przestrzeni?

Odpowiedz

19

Istnieje tak wiele opinii o tym, jak zorganizować to jak są programiści, ale moje poglądy są następujące;

Kontrolery powinny być odpowiedzialne tylko za interakcję z widokami. Oznacza to tworzenie instancji i wypełnianie obiektów modelu, pobieranie danych z obiektów biznesowych lub warstwy dostępu do danych, odpowiadanie na wszelkie żądania ze strony (wysyłanie formularzy, żądania AJAX, interfejs do metod/klas tworzenia dynamicznych zasobów (takich jak tworzenie CAPTCHA lub innych dynamicznych obrazy)) itp. Jeśli trzymacie się tej filozofii, ich wielkość i złożoność nigdy nie powinny przekraczać wartości waszych poglądów.

Obszary Zwykle używam obszarów do rozbijania aplikacji na podapozycje. Na przykład witryna może mieć forum dyskusyjne, katalog produktów, informacje o firmie, bazę wsparcia, itp, z których wszystkie będą odrębne obszary:

/areas/forum/... 
/areas/product/... 
/areas/company/... 
/areas/support/... 

Następnie, w każdym obszarze, może mieć

/areas/support/{views|controllers} 
/areas/support/search/ 
/areas/support/contact/ 
/areas/support/knowledgebase/ 

itp

Podobnie jak w miejscu WebForms gdzie każdy folder stanowiło odrębną „obszar” na stronie obszary zapewniają kolejny poziom organizacji, która pozwala zachować związane kontrolerów, widoków itp we wspólnej lokalizacji, a powinny być używane w podobny sposób.

+0

Dziękuję za szczegółową odpowiedź. Jest to pomocne i myślę, że zamierzam zaimplementować obszary w kolejnej iteracji. – shuniar

0

jego najbardziej praktyczne, gdy trzeba osobną kontrolę i ponowne użycie nazwy kontrolera. Możesz go użyć na stronie administracyjnej, blogu itp.

8

Używamy obszarów, aby odróżnić oddzielne zgłoszenia w aplikacji. Zwłaszcza oddzielne problemy, które mogą wymagać unikalnego uwierzytelnienia lub układu/stylizacji dla każdego obszaru. Na przykład pracuję nad aplikacją, która ma "moduły" sortowania. Każdy moduł to obszar mvc, a każdy moduł jako sekcja konfiguracji, która jest również obszarem mvc. Aplikacja ma trzy moduły, więc w sumie składa się z sześciu obszarów - z sześcioma prawami użytkownika do ich obsługi. Dzięki temu każdy moduł może mieć nową "stronę główną/układ" (wygląd) i określony poziom bezpieczeństwa.

Pomaga w oddzieleniu kodu jak dobrze; Kod w AreaA nie ma nic wspólnego z kodem w AreaB, ale czasami AreaA i AreaB używają wspólnego kodu znalezionego w katalogu głównym projektu.

Nieliniowe części witryny mają takie elementy, jak login użytkownika, strony błędów (404 itd.), Główny obszar "uruchamiania", który umożliwia wprowadzanie modułów, przekazywanie wyjątków i inne funkcje obejmujące przekroje poprzeczne w dowolnym z obszarów mvc.

Powiązane problemy