Ładowanie Ładowanie

Artykuł > Zrozumieć stan aplikacji ASP.NET 2.0

strony: 1 | 2 | 3 | 4 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Zrozumieć stan aplikacji ASP.NET 2.0

2008-03-03 07:45:00 | Artur Żarski
Zrozumieć stan aplikacji ASP.NET 2.0

Pisząc aplikację typu desktop, która jest uruchamiana na komputerze użytkownika, bardzo często przechowujemy jej stan, czyli aktualnie wprowadzone dane, wygląd ekranu (jeśli można go modyfikować), parametry uruchomienia itd. Tego samego oczekujemy też od programu przeznaczonego do uruchomienia w przeglądarce WWW. Pokażemy, jak to zadanie zrealizować, używając w tym celu ASP.NET 2.0.

Gdy rozważamy aplikację desktopową, to sytuacja jest bardzo prosta. Pracujemy w ramach konkretnego procesu, który ma swoją przestrzeń w pamięci, oraz dysponujemy systemem plików pozwalającym na przechowywanie wszystkich parametrów programu. Sprawa zaczyna się komplikować, kiedy zaczynamy rozmawiać o aplikacji WWW, która de facto działa po stronie serwera, a to, co widzimy na ekranie, jest efektem przetworzenia danych właśnie po stronie serwera. Jakie mechanizmy są nam zatem w stanie pomóc opracować program, który potrafiłby zapamiętać swój stan i mógłby przechowywane dane używać w dowolnym momencie cyklu swojego życia? Przypomnijmy, że niniejszy tekst jest trzecim w cyklu artykułów poświęconych programowaniu w ASP.NET. Dotychczas opublikowaliśmy teksty „Praca z kontrolkami w Visual Web Developer 2005 Express Edition” i „Zrozumieć Eventy i PostBacki w ASP.NET 2.0”.

ASP.NET i stan, czyli jak to działa

Każdy obiekt, który jest reprezentowany przez dowolną stronę WWW, istnieje tylko w momencie, gdy klient – w wyniku swojego zapytania – dostanie odpowiedź z serwera, po czym jest automatycznie i natychmiastowo niszczony. Jak w takim razie zapamiętywać stan aplikacji w tak ulotnym środowisku? ASP.NET daje nam wiele mechanizmów, które pozwalają na przechowywanie stanów aplikacji. Mamy możliwość zapamiętania pojedynczych wartości liczbowych, tekstowych oraz całych obiektów, by możliwe było przenoszenie tych wartości pomiędzy poszczególnymi stronami aplikacji lub wręcz pomiędzy odwołaniami do różnych witryn. Ilustrującym to przykładem jest np. stworzenie spersonalizowanego wyglądu jakiegoś portalu.

Rysunek 1: Przykładem personalizacji portalu może być dział Teledyski w Onet.pl, który pozwala na stworzenie własnej playlisty, zapamiętywanej i przywoływanej w momencie ponownych odwiedzin tej strony.

Co nam daje zapamiętanie stanu obiektów czy też całego programu? Dzięki temu mamy możliwość przechowania parametrów zdefiniowanych przez użytkownika bez konieczności ciągłego logowania się do każdej strony czy też zapamiętania parametrów wywołań kolejnych podstron. Istnieje kilka terminów, które określają stan aplikacji: są to m.in. pliki cookies (zwane popularnie ciasteczkami), ViewState czy też sesja i obiekt Session.

Aby zrozumieć zasadę działania poszczególnych metod, konieczne jest zapoznanie się z cyklem życia aplikacji WWW. Program „żyje” tak długo, dopóki istnieją aktywne sesje w jego obrębie. Co to dokładnie oznacza? Wszystko rozpoczyna się w momencie uruchomiania naszej witryny. Użytkownik wpisuje w przeglądarce adres URL i wysyła tym samym żądanie do serwera WWW. Wynik w postaci strony internetowej jest wysyłany do użytkownika i wyświetlany w przeglądarce. W tym czasie na serwerze tworzone są obiekty, umieszczane następnie na naszej witrynie. Kiedy obiekt zostanie utworzony według zadanych kryteriów i umieszczony na stronie, jest niszczony po stronie serwera. Oczywiście aplikacja nie kończy swojego życia, ponieważ użytkownik ma cały czas aktywną sesję na serwerze, ale gubimy już pewne informacje (w szczególności dane o kontrolce). Gdy program nie będzie aktywny, to po określonym czasie sesja wygasa i tym samym zupełnie tracimy informacje o aplikacji.

Zapamiętanie stanu aplikacji

W tym miejscu przechodzimy do sedna tematu, czyli informacji o mechanizmach zapamiętania stanu aplikacji oraz sposobach ich wykorzystania. Przedstawiamy listę metod przechowywania stanu oraz ich zastosowania (dane zebraliśmy w Tabeli 1), w artykule zajmiemy się natomiast trzema najbardziej popularnymi mechanizmami: obiektem Session, Cookies i ViewState.

Mechanizm

Czas życia

Obiekt Session: In-process Sesja
Obiekt Session: State server Sesja
Obiekt Session: SQL Server Sesja
Cookies Trwałe
Sesja
Okres w czasie
Ukryte pole formularza Komunikat
Parametry wywołania strony Komunikat
ViewState Komunikat
Obiekt Application Proces
Database Kontrolowane przez aplikację
Tabela 1. Lista możliwych mechanizmów zapamiętania stanu w aplikacji ASP.NET 2.0.
Najnowsze wiadomości
1 | 2 | 3 | 4 następna »

reklama

strony: 1 | 2 | 3 | 4 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Czytaj webhosting.pl:

Dyskusja

dodaj komentarz
0 + -
comnt #01 Elf 2008-07-07 10:25:41
Elf A o REST słyszeli? Desktop to desktop, web to web. Nie mieszałbym tych rzeczy...
------------------
Browser:
0 + -
comnt #02 0xhiryuu 2008-07-07 10:25:41
0xhiryuu A aj bym mieszal.
------------------
Browser:
0 + -
comnt #03 szlubo 2009-07-20 08:36:24
szlubo nie słyszałem nic o REST
------------------
Browser: Opera/9.63 (Windows NT 6.0; U; pl) Presto/2.1.1

Komentarze

  • Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
  • Jeśli masz problemy z odczytaniem słów, zmień zdjęcie.
  • Używamy tego zabezpieczenia, ponieważ dzięki niemu rozwija się projekt reCAPTCHA. Sugerujemy jednak, by zarejestrować się w serwisie i w ten sposób ominąć konieczność ciągłego odczytywania wyrazów.
  • W treści komentarza można używać języka formatowania BBcode.