Например, Web-сайт электронной коммерции может практично использовать
профили для сопровождения информации об адресах заказчиков (с
ограничениями, описанными в предыдущем разделе). Однако вы не должны использовать
профили для хранения информации о ранее размещенных заказах. И не только
потому, что объем этой информации слишком велик, чтобы сохранять ее эффективно,
но еще и потому, что ею трудно манипулировать.
Совет. Примите за правило использовать профили только для хранения информации
определенного рода, которую можно поместить в таблицу пользователей. Не применяйте их для
хранения информации, которую можно поместить в отдельные таблицы.
Стандартный поставщик профилей, входящий в ASP.NET (по имени SqlProfileProvider), не предоставляет многих дополнительных средств. В следующем списке
перечислены некоторые средства, которые вы можете легко добавить через
настраиваемый компонент базы данных, но которые не доступны SqlProfileProvider.
Если вам нужно любое из этих средств, то вам следует отказаться от профилей и
создать собственный компонент доступа к данным или же разработать
собственного поставщика профилей.
- Шифрование. Данные профилей могут быть сериализованы в строку, XML
либо в двоичное представление. Но независимо от вашего выбора, вы всегда
в конечном итоге сохраняете "сырой" текст. Если у вас есть важная
информация, то единственный выбор — зашифровать ее перед сохранением, что
потребует нежелательного размещению логики шифрования в вашем
интерфейсном коде.
- Проверка достоверности. Вы не можете ограничить тип информации,
которая помещается в профиль. Необходимо использовать дополнительные
инструменты (такие как элементы управления проверкой достоверности и
пользовательские классы данных) для предотвращения появления
недопустимых данных.
- Кэширование. Если информация профиля используется на странице, она
всегда извлекается из базы данных. Вы не можете хранить информацию из
профиля в памяти. Хотя можно скопировать информацию профиля в кэш,
это очень затруднит ее сопровождение.
- Аудит. Когда вы разрабатываете пользовательский компонент базы данных,
то имеете возможность добавлять любой необходимый код протоколирования и слежения. Можно использовать его для диагностики неожиданных
ошибок или следить за производительностью Web-приложения. Однако если
вы хотите использовать эти средства с профилями, то вам придется
проектировать собственный поставщик профилей, который включает необходимый
код протоколирования.
Теперь, ознакомившись со всеми плюсами и минусами профилей, вы готовы
попробовать их на практике.
предыдущая следующая страница вначало главы оглавление
958