Jak najlepiej opisać ideę kontrolera w ASP MVC?

0

Witajcie

Zaczalem sie uczyc ASP MVC (przesiadka z web forms). Ogladam mnostwo video tutoriali i powoli zaczynam lapac o co w tym chodzi. Jednak O ile "Model" jest dla mnie w pelni zrozumialy, tak nie wiem, czy dobrze rozumiem idee kontrolera i view. Czy tworzac nowy kontroler, mam rozumiec, ze tworze nowa "pod strone", do ktorej tworze model i view ?. Jezli tak, to jak w takim razie rozumiec fakt, ze w kontrolerze moge miec kilka funkcji i do kazdej moge tworzyc view ?. Wychodziloby na to, ze na jednym kontrolerze mozna zbudowac cala aplikacje webowa.

1
shagohad napisał(a):

Witajcie
Czy tworzac nowy kontroler, mam rozumiec, ze tworze nowa "pod strone", do ktorej tworze model i view ?

Powiedzialbym, ze raczej grupe podstron.

shagohad napisał(a):

Jezli tak, to jak w takim razie rozumiec fakt, ze w kontrolerze moge miec kilka funkcji i do kazdej moge tworzyc view ?.

Wyobraz sobie, ze tworzysz sklep internetowy. Jak wiadomo w sklepie sa produkty - bardzo czesto sa tez uzytkownicy.

W takiej sytuacji klient powinien miec mozliwosc:

  • zobaczenia listy produktow
  • zobaczenia podstrony produktu, w ktorej beda szczegolowej informacje o produkcie (dane techniczne itd)
  • dodanie produktu do koszyka
  • usuniecie produktu z koszyka
  • rejestracji nowego uzytkownika
  • edycji swojego uzytkownika

Do tego dochodza inne rzeczy, ktore pominalem jak chocby zlozenie zamowienia - nie chcialem za bardzo komplikowac.

Dobrze byloby w takiej sytuacji zrobic trzy kontrolery:

  • kontroler "produkty" zawierajacy metody "lista produktow" i "pokaz produkt"
  • kontroler "koszyk" zawierajacy metody "dodaj produkt" oraz "usun produkt"
  • kontroler "uzytkownicy" zawierajacy metody "rejestracja" i "edycja profilu"

Kazda z tych metod obsluguje inne podstrony. Kontroler w tym przypadku pelni role grupujaca - podczas dodawania nowych funkcjonalnosci bedziesz wiedzial intuicyjnie w jakim pliku nalezy dokonac zmian. Dla przykladu, jezeli chcesz stworzyc podstrone "polecane produkty" to nalezy rozbudowac kontroler produkty o metode "polecane produkty" (lub lepiej "polecane" bo wiadomo, ze chodzi o produkty skoro metoda jest w kontrolerze produkty - taka samo z innymi metodami, ktore omowilem). Jezeli bedziesz chcial rozszerzyc mozliwosci koszyka o edycje danych to dopiszesz metode "edycja" do kontrolera "koszyk".

shagohad napisał(a):

Wychodziloby na to, ze na jednym kontrolerze mozna zbudowac cala aplikacje webowa.

Bo mozna, ale nie jest to dobra praktyka.

0

No i to jest wytlumaczenie. Dziekuje ;). Wiem jak to postrzegac teraz.

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