Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaKrisztina Hajdu Megváltozta több, mint 8 éve
1
Csirmaz Péter MCP, MCTS, MCPD Turóczy Attila diái alapján: Harmadik nap
2
Állapotkezelés Felhasználó kezelés Kliensoldali és szerveroldali validáció Globalization
3
Az őskorban az oldalak teljesen függetlenek voltak egymástól A mai igényeknek ez már legtöbbször nem megfelelő Az ASP.NET 3.5-ben az állapotkezelést két részre bonthatjuk: – Kliens oldali adattárolás – Server oldali adattárolás
4
Kliens oldali adattárolás: – Az információk tárolása az oldal ismételt lekérései során – Az adatokat a kliens gépen tároljuk Server oldali adattárolás: – Munka menethez kapcsolódó – Alkalmazáshoz kapcsolódó
5
A legtöbb Webes alkalmazásnak el kell tárolnia és vissza kell adnia a felhasználó állapot adatait Ez összefüggőséget és nagyon magas szintű funkcionalitást nyújt Mindezt nagyon egyszerűen a lehető legkevesebb kódolással
6
Azt szeretnénk elérni, hogy az ismételt oldallekérések között az a tartalom megmaradjon Az ASP.NET előtt is megoldható volt a feladat, csak sokat kellett hozzá kódolni Ennek a műveletnek az elvégzésére az ASP.NET egy egyszerű és beépített szolgáltatással rendelkezik Ez a szolgáltatás a ViewState
7
A böngésző által visszaküldött (POSTBACK) adatokat feldolgozza a szerver Az egyes vezérlők állapotából hasított (Hash) értéket képez Ezt az értéket hozzáadja a válasz HTML oldalhoz, amelynek egy rejtett mezőjében tárolja el (HIDDEN FIELD) A szerver az elkészített oldalt, a rejtett mezővel egyetemben, válaszként visszaküldi a böngészőnek, HTTP protokoll használatával
8
További adatok is tárolhatóak benne Ezek az adatok is a rejtett mezőben lesznek eltárolva A ViewState egy dictionary kollekció, amely név-érték párokat tárol Érték hozzáadása a ViewState kollekcióhoz ViewState[”Color”] = ”White”;
9
Bizonyos esetekben hátrányos lehet a ViewState használata A ViewState kikapcsolható egy-egy vezérlő szintjén, illetve az egész oldalra nézve is ViewState kikapcsolás az egész oldal esetén ViewState kikapcsolása egy vezérlő esetén
10
Kis méretű adatok tárolása a kliens oldalon Simán olvasható, ha nem titkosított Lehet perzisztált, vagy ideiglenes a memóriában Ezt használja azonosításhoz a WebServer Törölheti a felhasználó Korlátozások
11
Cookie-k definiálása Response.Cookies[”LastVisit”].Value = DateTime.Now.ToString(); Response.Cookies[”LastVisit”].Expires = DateTime.Now.AddDays(2); Cookie-k olvasása MyLabel.Text = Server.HtmlEncode(Request.Cookies[”LastVisit”].Value);
12
QueryString Adat a url-ben – ? – után – Minden további paraméter & választ el Hozzáférés: – Request.QueryString[”searchstring”]; – Request.QueryString[”userid”]; http://mysite.com/Results.aspx?searchstring=asp+progr amozás&userid=turoczy
13
A felhasználó teljes munkafolyamatán keresztül tárolhatjuk az adatokat Definiálhatunk az alkalmazás teljes életciklusában elérhető adatokat is Az adatokat a szerveren tároljuk A következőkben két ilyen szolgáltatást fogunk tárgyalni: – Application objektum – Session objektum
14
Az alkalmazás bármelyik oldaláról hozzáférhetünk, bármelyik felhasználótól érkezett is a kérés Az Application kollekció élettartama: – Akkor jön létre, amikor az első kérés érkezik az alkalmazáshoz – Akkor szűnik meg, amikor az alkalmazás megáll
15
Amikor a szervert megállítják Amikor a Web-szervert megállítják Amikor a Web site vagy Web Servicet leállítják Valamilyen alkalmazás hiba esetén Az alkalmazás új verziójának a telepítésekor Az alkalmazás bármikor megállhat és erre nincs semmilyen figyelmeztetés!
16
Az eseménykezelőket a Global.asax fájlban kell megírni Az Application eseményei Esemény neveMikor fut le? Application_StartAlkalmazás indításakor Application_EndAlkalmazás leállításakor Application_ErrorAlkalmazás hiba esetén
17
Az adatok az egyes felhasználókhoz kötődnek A Session objektum élettartama: – Amikor egy adott felhasználó először kér le egy oldalt – Megszűnik, ha az előre meghatározzott idő letelik, illetve a Session.Abandon metódus meghívásra kerül
18
Az eseménykezelőket ismét a Global.asax fájlban kell megírni Az Session eseményei Esemény neveMikor fut le? Session_StartSession indításakor Session_EndSession leállításakor
19
Három tárolási mód van: InProc StateServer SQLServer
20
Ez az alapértelmezett mód Az alkalmazás folyamatában fut, az adatokat az alkalmazás memóriaterületén tárolja A három közül csak ez a mód támogatja a Session.End eseménykezelőt Az állapotinformációk nem oszthatók meg több szerver között egy adott szerver farmon belül
21
A Web.Config-ban kell beállítani Külön folyamatban fut, amit ASP.NET State Service-nak nevezünk A Session.End eseménykezelő nem támogatott Az állapotinformációk megoszthatóak több szerver között
22
Akárcsak az előző esetben, szintén a Web.Config-ban kell beállítani Az adatok Microsoft SQL Server adatbázisban tárolja A Session.End eseménykezelő nem támogatott Az állapotinformációk megoszthatóak több szerver között
24
Állapotkezelés Felhasználó kezelés Kliensoldali és szerveroldali validáció Globalization
25
Tulajdonságok halmaza Adat tárolása automatikus SQL Server adatbázisában A visszatérő felhasználót automatikusan azonosítja
26
Definiálás: … Tárolás: Profile.Nev = nameTextBox.Text; Felhasználás: udvozloLabel.Text = ”Szervusz ” + Profile.Nev + ” !”;
27
Azonosított – Felhasználó azonosítása, nyomon követése Ismeretlen – Egyedi azonosítót kapnak – Süti vagy az URL részeként – Nem alapértelmezett beállítás – Minden propertybe: allowAnonymous= ”true”
29
Használat: Profile.Cim.Utca
30
Beépített, saját adatbázis WebSite Administration Tool (WSAT) Membership és Roles osztályok Login Controls
31
CreateUserWizard Login LoginView LoginStatus LoginName
32
CreateUser DeleteUser FindUsersByEmail, FindUsersByName GeneratePassword GetAllUsers GetNumberOfUsersOnline GetUser, GetUserNameByEmail UpdateUser ValidateUser
34
Állapotkezelés Felhasználó kezelés Kliensoldali és szerveroldali validáció Globalization
35
RequiredFieldValidator a mező értéke nem lehet üres RangeValidator csak adott tartományon belüli érték fogadható el RegularExpressionValidator a reguláris kifejezést kielégítő érték fogadható el ComapareValidator két mező értékének meg kell egyeznie CustomValidator saját egyedi validátor
36
Miért akkor szól, ha a gombra kattintunk? Csoportba fogalás ValidationGroup tulajdonság Kliensoldali validálás tiltása EnableClientScript tulajdonság false-ra állításával
38
Állapotkezelés Felhasználó kezelés Kliensoldali és szerveroldali validáció Globalization
39
Mire valók az erőforrások? Mi a lokális erőforrás? Tárolás: App_LocalResources almappa Formátum: [.kultúra].resx Pl.: Default.hu.aspx, Default.hu-hu.aspx
40
Generálás VS-val: Tools | Generate Local Resource – Létrehozza a lokális App_LocalResourcest – Minden vezérlőhöz létrehozza a Textet és ToolTipet MyPage – Hozzáadja az erőforráskulcsot a vezérlőkhöz – A frissítése NEM automatikus! Érdemes a fejlesztés végén elvégezni.
41
Létrehozás Ha megvan a default, copy-paste! Rename-mel átnevezni, értékeket átírni Tesztelés A böngésző beállításaiból az asp.net beállítja a kultúrát A teszteléshez: IE | Tools | Internet Options | Languages | Language Preference | Add, majd Move Up
42
Bármelyik oldalról elérhetőek Tárolás: root/App_GlobalResources Explicit lokalizálás Létrehozás: Sln explorer Jobb katt a rootra, Add ASP.NET Folder Jobb katt az App_GlobalResources folderre Add New Item…, Resource File, Add Adatok hozzáadása Továbbiak: copy-paste
43
Deklaratív kötés – Több vezérlőhöz is ugyanazt az erőforrást rendelhetjük – A vezérlő tulajdonságai között: Expressions – Bindable Properties, Expression Type: Resources – ClassKey: global fájl neve, ResourceKey: erőforrás neve Imperatív kötés – Resources.Resource: automatikus, erősen típusos – Ha nem állnak rendelkezésre fordításkor: GetLocalResourceObject, GetGlobalResourceObject
44
Deklaratívan – Web.config, culture, uiculture Imperatívan – Page.InitializeCulture() Page.Culture: nyelvhez kapcsolt funkciók PageUICulture: betöltendő nyelvi erőforrás
45
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.