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.
Dziękuję za szczegółową odpowiedź. Jest to pomocne i myślę, że zamierzam zaimplementować obszary w kolejnej iteracji. – shuniar