nou 2

Întotdeauna frumos atunci când vă amintiți. Mai ales atunci când vă amintiți, nu numai tu, dar, de asemenea, gusturile și preferințele, îți dai seama că nu ești doar unul din multele. Într-un astfel de loc pe care doriți întotdeauna să vină înapoi.

Cu toate acestea, această sarcină nu este ușor. Imaginează-ți că ești - un magazin de vânzător mare, în care fiecare zi este mai mult de o sută de clienți, și dacă - un site care în fiecare zi zeci de mii de vizitatori de navigare? Ai nevoie să nu-mi amintesc doar pentru toată lumea, dar, de asemenea, să-l păstreze pe toate, atâta timp cât el nu a catadicsit să vină la tine din nou, astfel încât să puteți să-l arate memoria lui fenomenală. Ce se întâmplă dacă în acest timp are un gust s-au schimbat și trebuie să-și amintească peste tot din nou, problemele sunt în creștere ca un bulgăre de zăpadă. Pentru a automatiza sarcina necesită mai mult de un tabel din baza de date, un număr de cereri de ei, și chiar și o grămadă de cod pentru a lega totul împreună. Ei bine de testare, de testare, de testare. Conceput și în valoare de ea? Cu toate acestea, nu toate așa de rău, odată cu lansarea ASP.NET 2.0 toate problemele se estompeze în fundal, pentru că acum el are o nouă capacitate built-in - Profile (Profil) utilizator.

profil

* Tastat ferm accesul la elementele colecției: Spre deosebire de colecțiile de tip Application, Session, Context, Cache, și într-adevăr toate celelalte colecții care au căzut prin moștenire de la ASP.NET 1.x, care este accesat de valorile elementelor sale de profil cheie de utilizator - clasa HttpProfile - foloseste un proprietăți numit puternic tipizat, lucru care este mult mai convenabil. Amintiți-vă numele și tipurile de proprietăți nu mai este nevoie de acum este destinul IntelliSense, care se descurcă cu mult mai bine. Un alt efect util - tip de verificare la momentul compilarii. De exemplu, următorul cod arată două variante ale ultimului utilizator Data de activitate:
o veche, folosind sesiunea:
DateTime LastLogin = (DateTime) Session [ "LastLogin"];
O nouă, cu implicarea serviciului de personalizare:
DateTime LastLogin = Profile.LastLogin;
Rețineți că, în al doilea caz, o distributie nu este necesară, deoarece data este stocată ca o dată, nu ambalate în obiectul.
* Exemplu de date de stocare numai atunci când este necesar. Spre deosebire de o sesiune de date este extras de a face cu fiecare solicitare de pagină, luând resurse de server, dar numai în cazul în care au într-adevăr nevoie.
* Timp de stocare nu este limitat. Spre deosebire de toate celelalte colecții, durata de viață a datelor stocate într-un profil pe termen nelimitat și nu depinde nici de aplicarea sau sesiunea curentă. De fapt, datele vor fi stocate pentru totdeauna, în cazul în care seiful este destul de fiabile și nu alegeți pentru a le elimina o dată acolo.
* Datele pot fi stocate ca cunoscute (înregistrate și autentificat în sistem), și pentru necunoscut (anonim, care nu este înregistrat încă, sau pur și simplu nu sunt incluse în sistem) vizitatori.
* Accesul la atribute ale profilului este la fel de ușor ca și de lucru cu o colecție de sesiune. Acest lucru este posibil datorită unei noi proprietăți a profilului, este disponibil în toate derivate din clasa System.Web.UI.Control de aplicații. Sau, în toate clasele de aplicare prin contextul unei aplicații web folosind următoarea sintaxă: System.Web.HttpContext.Current.Profile sau ((ProfileCommon) System.Web.HttpContext.Current.Profile) .MessagesPosted dacă aveți nevoie de acces la proprietățile lor de profil. ProfileCommon - o clasă specială, compilatorul creat automat atunci când profilurile și care conțin toate proprietățile personalizate adăugate prin web.config.
* Depozitarea și datele extensibile pot fi orice. În mod implicit în livrare ASP.NET 2.0 include un furnizor de profil de utilizator - furnizor pentru Microsoft SQL Server. Dar este posibil și crearea de propriul furnizor de date. În acest sens, propunem un nou model pentru furnizorii de implementare. Aceasta implică selectarea unui strat de interfață software cu depozitul de date. Acest lucru realizează un acces transparent la orice date, indiferent de tipul de stocare fizic - poate fi o bază de date și fișierul de pe hard disk, sau chiar un server de baze de date dedicat. Această arhitectură utilizează un furnizor de date și alte servicii ASP.NET 2.0. Mai târziu, ne vom uita la un exemplu de a crea propriul furnizor de date și a vedea cât de simplu este. Date de servicii pot fi setate static în fișierul de configurare aplicație sau dinamic atribuit în modul executa.

Să ne uităm la modul în care puteți începe să utilizați profilul. Astfel, datele din profil stochează despre un anumit utilizator al site-ului dvs. și vă permite să primiți aceste variante. În mod implicit, toate datele vor fi stocate într-o bază de date SQL Server tabele Express. Șirul de conexiune implicit se numește „LocalSqlServer“ și setați-l în fișierul de configurare Machine.config la nivel mondial. Iată cum arată:

că este, baza de date va funcționa în modul instanță de utilizare, numele fișierului bazei de date ASPNETDB.MDF și prima încercare de a salva baza de date de profil va fi creat automat într-un subfolder din directorul rădăcină al site-ului App_Data.

Excelent, totul este deja configurat, tot ce trebuie să facem - este de a descrie câmpurile de profil necesare în fișierul de configurare web.config aplicației. Configurarea unui profil de pe numele de stocare și numele, precum și contorul vizitelor sale la site-ul nostru:

În mod implicit, tipul de parametru de profil - l System.String, prin urmare, pentru a păstra numărul de vizite la site-ul ca un număr, trebuie să se precizeze în mod explicit tipul său. De asemenea, parametrul poate avea o valoare prestabilită (în acest caz, 1). În cazul în care furnizorul de date nu găsește valorile parametrilor într-un depozit de date, acesta va fi returnat la setarea implicită.

După profilul este configurat, este foarte ușor de utilizat. Codul de mai jos prezintă datele profilului utilizatorului curent și le actualizează când apăsați butonul. Notă orice cod suplimentar pentru a salva aceste informații oriunde în baza de date sau să le preluați de acolo nu ar trebui să fie scris, va avea grijă de infrastructura ASP.NET.

Profil utilizator avansat

Profilul conține următorii parametri de bază: