Pytania z rozmów vol. 1 – ASP.NET – cykl życia strony

Dzisiejszy wpis będzie dotyczył oczywistej oczywistości. Ale czy na pewno? Zostałem kiedyś zapytany na jednej z pierwszych rozmów o pracę, żeby wymienić jak najwięcej zdarzeń związanych z cyklem życia strony. Pierwszymi (i niestety jedynymi), które przyszły mi do głowy były:

– page_init

– page_load

– page_render

– page_unload

A co z pozostałymi zdarzeniami? No właśnie. Zdziwiło mnie, gdy zostałem poinformowany, że moja odpowiedź nie była najgorsza – naprawdę myślałem, że to pytanie poszło mi fatalnie. Po tej rozmowie obiecałem sobie, że dokładnie przeanalizuję cykl życia strony i wbiję to sobie do tej głupiej głowy na zawsze.

Jak to wygląda? Zaczynajmy (po kolei):

1

1) Zaczynamy od requesta i inicjalizacji kontrolek (domyślne wartości) przy zdarzeniu Page_Init.

2) Następnie opcjonalnie LoadViewState (jeśli została odesłana przez serwer) przywraca stan widoku (stan kontrolek) wczytywanej strony.  

3) LoadPostBackData przetwarza kontrolki serwerowe wypełnione wcześniej wysłanymi danymi.

4) Page_Load umożliwia wypełnienie kontrolek danymi z różnych źródeł (np. DB).

5) Jeżeli wystąpił postback, wywoływane są dwa zdarzenia – RaisePostDataChangedEvent oraz RaisePostBackEvent

6) Wywoływane jest zdarzenie Page_Prerender, które umożliwia modyfikację wypełnionych kontrolek przed wyświetleniem.

7) Kolejno SaveViewState zapisuje stan widoku strony.

8) Następnie Page_Render tworzy obiekt Response i wyświetla stronę.

9) Ostatecznie Page_Unload usuwa stronę z pamięci i wysyła Response do przeglądarki.

 

Mam nadzieję, że ten wpis się komuś przyda podczas przyszłych rozmów kwalifikacyjnych 🙂

11 thoughts on “Pytania z rozmów vol. 1 – ASP.NET – cykl życia strony

  1. Lata pracy w WebForms i nigdy tego nie zapamiętałem. Tzn., że nie jest to potrzebne. Można sprawdzić w trakcie pisania czegoś i nie zaśmiecać sobie głowy. To, że tak trudno to zapamiętać dowodzi moim zdaniem jednego – przekombinowane! 🙂

    1. Najśmieszniejsze jest to, że potem człowiek przychodzi do takiej firmy, a 90% ludzi pracujących jako programiści nie ma o tym zielonego pojęcia 😉

      1. Złapałeś, ta sytuacja miała miejsce podczas moich pierwszych rozmów o pracę – było mi wtedy obojętne co, gdzie i jak, byle .NET. Jednak przekrój pytań podczas rozmów rekrutacyjnych związanych z web’em do tej pory obfituje w takie smaczki w wielu firmach 😉

      2. Powiem że nie wiem czy znajdziesz naprawdę duży projekt który jest webowy, jest robiony w .Net a nie jest w WebFormsach. MVC mimo tych kilku lat jest jeszcze młode, pierwsze wersje też nie od razu zdobyły zaufanie korporacji. Nowe rzeczy robi się w MVC ale istnieje cała masa już działających rozwiązań które dalej wymagają rozwoju i jeszcze bardzo długo będą potrzebni specjaliści w tych technologiach. A sam cykl życia strony też nigdy się go nie nauczyłem.

Zostaw komentarz