New 2

Винаги е хубаво, когато се сетите. Особено, когато си спомняте, не само вие, но и вашите вкусове и предпочитания, ти осъзнаваш, че ти не си просто един от многото. В такова място, че винаги искам да се върна.

Въпреки това, тази задача не е лесно. Представете си, че сте - голям магазин продавач, в която всеки ден е повече от сто клиенти, и ако - един сайт, че всеки ден десетки хиляди посетители сърфиране? Трябва да се помни, не просто всеки, но и да пазят всичко, стига той не благоволи да дойде при теб отново, така че можете да му покажа феноменален му памет. Какво става, ако през това време е с добър вкус са се променили и че трябва да се помни всичко отначало, проблемите растат като снежна топка. За автоматизиране на задачата изисква повече от една таблица в базата данни, броят на заявките за тях, а дори и един куп код, за да връзвам всичко заедно. Ами тестване, тестване, тестване. Замислен и си струва? Въпреки това, не всички, че лошо, с пускането на ASP.NET 2.0 всички проблеми избледняват, защото сега той е с нов вграден капацитет - Profile (профил) на потребителя.

профил

* Силно въведен достъп до елементите на колекцията: За разлика от колекциите на типа приложение, сесия, Контекст, Cache, и наистина всички други колекции, които са паднали по наследство от ASP.NET 1.x, който е достъпен от стойностите на нейните елементи ключ профила на потребителя - HttpProfile клас - използва силно въвели име имоти, работа, която е много по-удобно. Запомнете имената и типовете имоти вече не е необходимо сега, е съдбата на IntelliSense, която се справя с него много по-добре. Друг полезен ефект - тип проверка по време на компилация. Например, следния код показва два варианта на последната дата активност потребителя:
о а, с помощта на сесията:
DateTime LastLogin = (DateTime) сесия [ "LastLogin"];
о ново, с участието на услугата персонализация:
DateTime LastLogin = Profile.LastLogin;
Имайте предвид, че във втория случай, гипс не е необходим, тъй като датата се съхранява като дата, то не е опаковано в обекта.
* Само когато са необходими данни проба от съхранение. За разлика от данните за сесията се извлича общо с всяка заявка за страница, като до ресурсите на сървъра, но само ако те наистина имат нужда.
* Време за съхранение не се ограничава. За разлика от всички други колекции, от продължителността на данните, съхранявани в профил за неопределено време и не зависи от задействане или текущата сесия. Всъщност, данните ще се съхраняват завинаги, ако трезора е доста надежден и не изберете да ги премахнете, след като там.
* Данните могат да се съхраняват и за известните (регистрирани и заверени в системата), а за неизвестен (анонимен, че все още не е регистрирана, или просто не са включени в системата) посетителите.
* Достъп до атрибути на профила е толкова лесно, колкото да работи с колекция от сесията. Това е възможно благодарение на нов имот на профила, е на разположение в цялата получена от System.Web.UI.Control клас приложения. Или във всички класове на заявката чрез контекста на уеб приложение, като използвате следния синтаксис: System.Web.HttpContext.Current.Profile или ((ProfileCommon) System.Web.HttpContext.Current.Profile) .MessagesPosted ако имате нужда от достъп до техните профили свойства. ProfileCommon - специален клас, компилаторът създава автоматично, когато профилите и съдържащи всички потребителски свойства на добавените чрез web.config.
* Съхранение и данни разтегателен може да бъде всеки. По подразбиране в доставката ASP.NET 2.0 включва доставчик за Потребителски профил - доставчик за Microsoft SQL Server. Но е възможно и създаването на своя собствена доставчик на данни. За тази цел ние предлагаме нов модел за доставчиците на изпълнение. То включва избор на софтуерен интерфейс слой с склада за данни. Така се постига прозрачен достъп до всякакви данни, независимо от вида на физическото съхранение - тя може да бъде на база данни и файла на твърдия диск или дори на специален сървър на база данни. Тази архитектура използва доставчик на данни и други услуги ASP.NET 2.0. По-късно ще разгледаме един пример за създаването на своя собствена доставчик на данни и да видим колко е лесно. данни на услуги могат да бъдат определени статично в конфигурационния файл или приложение динамично присвоените в режим на изпълнение.

Нека да разгледаме как можете да започнете да използвате този профил. По този начин, данните за профила магазини за определен потребител на сайта ви и ви позволява да получавате тези след това. По подразбиране, всички данни ще се съхраняват в база данни, таблици SQL Server Express. низ по подразбиране връзка се нарича "LocalSqlServer" и да го настроите в глобалната конфигурация machine.config файла. Ето как изглежда:

което означава, че базата данни ще работи в режим на потребителя съд, името на файла с базата данни ASPNETDB.MDF и първият опит да се спаси базата данни на профил ще бъде създадена автоматично в подпапка на сайта основната директория App_Data.

Отличен, всичко вече е създадена, ние всички трябва да направите - е да опише необходими полета в профила в конфигурация web.config файл на приложението. Създаване на профил в името на съхраняване и фамилното име, както и на гишето на посещенията си в нашия сайт:

По подразбиране, видът на профил параметър - това System.String В, следователно, за да се запази броят на посещенията в сайта като брой, ние трябва изрично да посочвате неговия вид. Също така, този параметър може да има стойност по подразбиране (в този случай 1). Ако доставчикът на данни не намери стойностите на параметрите в склад за данни, тя ще бъде върната на настройката по подразбиране.

След този профил е настроен, че е много лесен за използване. Кодът по-долу показва данните от текущия потребителски профил и да ги актуализира, когато натиснете бутона. Имайте предвид, всеки допълнителен код, за да запази тази информация навсякъде в базата данни или да ги изтегли от там не трябва да бъде написана, ще се погрижи за ASP.NET инфраструктура.

Потребителски профил

Профилът съдържа следните основни параметри: