Űrlap mezők
Állandó probléma a web alkalmazás kódolása során, hogy ugyanazon kliens két lekérdezése között információkat tárolni róla. Például, hogy bejelentkezett-e már valamilyen jelszó segítségével, vagy egy web áruház esetén idáig milyen termékeket választott ki vásárlás céljára.
Van lehetőség ezen adatok kliens oldalon történő tárolására. Ekkor a kitöltendő űrlapokba csomagolva rejtett (hidden) adatmezőket is átküldhetünk értékeikkel együtt. Ezeket az adatmezőket a kliens oldali browser nem jeleníti meg (nem zavarja össze a lapképet), de amikor az űrlap kitöltésekor a beküld gombot lenyomják, a browser ezen adatmezőket és tartalmukat is visszaküldi változatlan formában.
Állandó probléma a web alkalmazás kódolása során, hogy ugyanazon kliens két lekérdezése között információkat tárol róla. Például, hogy bejelentkezett-e már valamilyen jelszó segítségével, vagy egy web áruház esetén idáig milyen termékeket választott ki vásárlás céljára.
A C#-ban OOP szemlélet mellett, az adatokat az osztályok mezőiben szoktuk tárolni. Amennyiben a mező osztály-szintű (static), úgy belőle csak egyetlen példány lesz a memóriában.
A problémát pontosan ez jelenti. Mivel egy web alkalmazás egy időben több klienssel is tart kapcsolatot, olyan adattároló egység, melyből összesen csak egy van, és nem kliensenként egy – nem megfelelő. Egy ilyen mezőbe elhelyezett értékről nem eldönthető melyik kliens miatt került be. Így előfordulhatna azaz eset, hogy az egyik kliensről belépnek valamilyen jelszóval, ez tárolásra kerül egy ilyen mezőben, s egy másik kliens lekérésekor azt hinné a program, hogy az a kliens is belépett már.
Állandó probléma a web alkalmazás kódolása során, hogy ugyanazon kliens két lekérdezése között információkat tárol róla. Például, hogy bejelentkezett-e már valamilyen jelszó segítségével, vagy egy web áruház esetén idáig milyen termékeket választott ki vásárlás céljára.
A C#-ban OOP szemlélet mellett, az adatokat az osztályok mezőiben szoktuk tárolni. Amennyiben a mező példány-szintű (nem static), úgy belőle példányonként létezik egy-egy darab.
A probléma az, hogy a web szerver oldaláról jelentkezik. Egy lekérés feldolgozásakor létrehoz egy példányt a feldolgozó program osztályából, amely elvégzi a feldolgozást, adatokat helyezhet el a mezőiben, de amint a lapot előállította, ezen példány megsemmisítődik. Ha legközelebb (akár) ugyanezen kliens újra adatokat kérne le ugyanettől a programtól, akkor egy másik példányt hozna létre a web szerver, mely nem tartalmazná az előbb gondosan elhelyezett adatokat a mezőiben.
Állandó probléma a web alkalmazás kódolása során, hogy ugyanazon kliens két lekérdezése között információkat tárol róla. Például, hogy bejelentkezett-e már valamilyen jelszó segítségével, vagy egy web áruház esetén idáig milyen termékeket választott ki vásárlás céljára.
Ezen adatokat az ajánlott technológia mellett Session-okban kell tárolni. Minden klienshez saját Session-t rendel a szerver (ezzel nekünk nem kell foglalkozni). A Session-ban hozzáférhetünk az aktuális klienshez rendelt adatokhoz. A session-ban lévő adatokat maga a web szerver tárolja két futás között, így az megőrződik.
Amennyiben a web szerver leállna meghibásodás vagy egyéb oknál fogva, úgy a Session-ban tárolt adatok is elvesznek. Ezt megakadályozandó szokás a Session adatokat valamely SQL szerverbe továbbítani. Az ott tárolt adatok akár egy web szerver újraindítás után is elérhetőek lesznek.