Można sobie go wyobrazić jako potężna centrala telefoniczna, która przekazuje połączenia w odpowiednie miejsca.
1. Globalne filtry
Z filtrami w ASP.NET MVC 2 spotkaliśmy się nie raz. Są to bardzo przydatne narzędzia pozwalające oddzielić często powtarzające się czynności od logiki metod/kontrolera. Dzięki temu kontroler za pomocą akcji spełnia swoje zadania, a elementy takie jak identyfikacja, cache itp. nie "zaciemniają kodu".W wersji MVC 2 mogliśmy nakładać filtry na pojedyncze akcje czy kontrolery:
Code:
Rozwiązanie bardzo przydatne i intuicyjne. Co jednak jeżeli chcemy jeden filtr nadać dla wszystkich kontrolerów?
Aby rozwiązać ten problem wprowadzono tzw. globalne filtry. Filtry te definiujemy w pliku Global.asax w metodzie RegisterGlobalFilters:
Code:
2. ViewBag
ViewBag to nowa właściwość za pomocą której możemy przesyłać dane do widoku. Zobaczmy na przykład tworzony wraz z nowym projektem aplikacji:
Code:
W porównaniu z właściwością ViewData - ViewBag jest typu dynamic, co w uproszczeniu oznacza że nie jest sprawdzane co znajduje się pod taką zmienną podczas kompilacji ale podczas wykonywaniu programu. W przypadku MVC 3 możemy korzystać z obu możliwości w zależności od naszych preferencji.
3. Caching rezultatu akcji
MVC 3 wprowadza nowość w postaci możliwości caschowania rezultatów wykonania akcji. Zobaczmy na przykład:
Code:
Mając do czynienia z np. stroną na której wyświetlamy produkty z danej kategorii, które nie zmieniają się np. na bieżąco tylko są dodawane raz dziennie, stosujemy caschowanie rezultatu. Rezultat jest zatem zapamiętany i nie będzie potrzeby odwoływania się do bazy danych po każdym requescie użytkownika. Dla np. 5 kategorii odwołanie do bazy nastąpi przykładowo 5 krotnie a następne po 4 tysiącach sekund.
Rozwiązanie bardzo przydatne, odciążające serwer, przyspieszające zarazem działanie całej aplikacji.
4. Nowe typy rezultatów akcji:
W nowej odsłonie MVC wprowadzono 3 nowe typy rezultatów:HttpNotFound - przydatny w przypadku kiedy użytkownik chce się dostać do zasobu którego nie ma - np. poprzez ręczne sterowanie parametrami przekazywanymi do akcji kontrolera. Jest to oczywiście kod odpowiedzi na błąd 404.
RedirectResult - odpowiednik błędu 302, co jest bardzo ważne w przypadku SEO HttpStatusCodeResult - umożliwia zwrócenie kodu błedu 5.
5. Filtry na akcjach wykonywane przed tymi na kontrolerach
Poprzednio w MVC 2 należało być szczególnie ostrożnym podczas nakładnia filtrów na kontrolery. Powodem tego było, że jeżeli na akcję nakładany był filtr a później na cały kontroler inny filtr mogło dojść do niezamierzonej sytuacji, że filtr na kontrolerze uniemożliwiał dostanie się do żądanej akcji, chociaż była ona pierwotnie dozwolona.
Jeżeli nie chcemy korzystać z nowej funkcjonalności wystarczy nadać odpowiednią kolejność filtrom.
6. Sessionless controlers
Jak wiadomo nadzorowanie sesji nie jest rzeczą prostą a wręcz może prowadzić do spowolnienia działania witryny. Jeżeli weźmiemy pod uwagę, że ta sama przeglądarka próbuje wysłać kilka requestów do serwera, na czas przetwarzania każdego z nich sesja musi zostać zablokowana. MVC 3 wprowadza możliwość wyboru w jaki sposób ma być traktowany obiekt sesji. Możemy wybrać spośród 4 trybów:- Default
- Disabled - wyłączona
- ReadOnly - tylko do odczytu
- Required - zapis i odczyt
Jak widać nowe MVC 3 wprowadza szereg nowości i unowocześnień. Przechodząc na nową wersję frameworka warto je stosować i nie bać się eksperymentów z nimi. W końcu jeżeli mają pozostać tylko wiedzą "merytoryczną" nie warto przechodzić do nowej technologii.
Brak komentarzy:
Prześlij komentarz