Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska

1 Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówk...
Author: Mirosław Kołodziej
0 downloads 0 Views

1 Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska

2 Techniki zarządzania stanem w ASP.NETUżywanie stanu widoku ASP.NET Używanie stanu kontrolki ASP.NET Zdefiniowanie zmiennych aplikacji Zdefiniowanie zmiennych sesji Zdefiniowanie danych w plikach cookie

3 Mechanizmy pozwalające na zarządzanie stanemPo stronie Klienta: parametry wywołania pliki cookies Po stronie serwera stan strony (ViewState) stan sesji stan aplikacji

4 Stan aplikacji Współdzielenie informacji w całej aplikacji jest możliwe przy użyciu klasy HttpApplicationState. Klasa ta pozwala przechowywać zmienne w słowniku – kolekcji par klucz-wartość. Zmienne te są widoczne w obszarze całej aplikacji ASP.NET

5 Stan aplikacji Zasoby –stan aplikacji jest przechowy- wany w pamięci; mamy do niego szybki dostęp, ale nie można pamiętać zbyt dużo informacji Ulotność - jest usuwany z pamięci w momencie zatrzymania lub restartu aplikacji lub w momencie awarii serwera. Skalowalność - nie jest dzielony na serwery w farmie serwerów Współbieżność - konieczność zapewnienie mechanizmów bezpiecznej aktualizacji przechowywanych obiektów.

6 Stan aplikacji Tworzenie zmiennych stanu aplikacji jest możliwe poprzez obiekt Application np.: Application["info"] = "Witaj świecie"; Application["AppStartTime"] = DateTime.Now;

7 Stan aplikacji Pobranie wartości tak utworzonej zmiennej stanu aplikacji można zrealizować za pomocą następującej konstrukcji: string info = (string) Application["info"]; DateTime AppStartTime = (DateTime) Application["AppStartTime"];

8 Stan sesji Tworzenie zmiennych stanu sesji jest możliwe poprzez obiekt Session. Np.: Session["info"] = "Witaj świecie!"; Pobranie wartości tak utworzonej zmiennej stanu sesji : string info = (string) Session["info"]; Przechowywanie i pobieranie złożonych danych, tj. obiektów, wymaga rzutowania do odpowiedniego typu.

9 Stan sesji Standardowy czas życia - 20 minOgraniczenie czasu w metodzie ( plik Global.asax) Session_Start(…) { Session.Timeout=5; Session [”XX ”]=new(XX); }

10 Global Application ClassPlik Global.asax umożliwia deklarowanie i zarządzanie zdarzeniami na poziomie aplikacji i sesji. Jest on umieszczony w głównym katalogu aplikacji. Podczas wykonywania plik jest parsowany i kompilowany w dynamiczną klasę dziedziczoną z klasy bazowej HttpApplication.

11 ViewState Ukryte pole formularza _ViewState, które przepływa między przeglądarką a określoną stroną zawierające zbiór par nazwa/wartość, które reprezentują wartości każdej kontrolki interfejsu użytkownika na danej stronie Odczytywane w czasie zdarzenia Init klasy bazowej System.Web.UI.Page

12 ViewState Własność EnableViewState każdej kontrolki określa, czy jej stan pomiędzy kolejnymi wy wołaniami strony (PostBack) ma zostać odtworzony, czy serwer ma ponownie go wygenerować

13 ViewState Do ukrytego pola _ViewState można dodać niestandardowe informacje np.: ViewState[”UkryteInfo”] = ”JakieśInfo”; …. Lbl1.Text = (string)ViewState[”UkryteInfo”] ;

14 Przykładowe zastosowanie:P:\emrowka\APBD Przykład Parametry Sesji i Aplikacji2014.docx