Поделиться через


Общие сведения о персонализации веб-частей

Обновлен: Ноябрь 2007

В некоторых веб-приложениях может понабиться разрешить пользователям изменять или персонализировать пользовательский интерфейс и поведение приложения. Набор элементов управления веб-частей ASP.NET предоставляет эту возможность с помощью одной из главных особенностей — персонализации. Персонализация позволяет сохранять свойства и состояния элементов управления веб-частями в долговременное хранилище и не привязывать данные свойства и состояния к определенному сеансу веб-обозревателя.

Принцип работы персонализации

Персонализация позволяет создавать свойства для элементов управления веб-частей, которые имеют несколько уникальных характеристик. Настраиваемые свойства:

  • Привязанные к идентификации определенного пользователя или веб-страницы. Параметры каждого пользователя для персонализируемых элементов управления на каждой странице можно сохранять в персонализированные данные. Эти данные позволяют пользователям изменять пользовательский интерфейс на веб-странице и сохранять индивидуальные настройки.

  • Долговременные. Персонализированные параметры не привязаны к одному сеансу веб-обозревателя. Поскольку данные параметры сохраняются в долговременном хранилище, параметры пользователя могут извлекаться приложением каждый раз при посещении пользователем определенной страницы.

    Для сохранения персонализированных данных используется база данных служб приложения ASP.NET. Эта база данных по умолчанию автоматически создается ASP.NET во вложенной папке «app_data» при первом использовании в ASP.NET персонализации или одной из остальных служб приложения, таких как роли, членство или профили. Также по умолчанию в ASP.NET создается база данных в виде одного файла базы данных SQL Server, экспресс-выпуск, который содержит схему базы данных для всех служб приложения. Используя файл Web.config, можно настроить используемое приложение так, чтобы для персонализации создавался отдельный файл базы данных.Кроме этого, в файле Web.config можно указать, чтобы данные служб приложения сохранялись в базу данных SQL Server вместо того, чтобы по умолчанию использовать для этого файл базы данных SQL Server, экспресс-выпуск.

  • Сохраненные на уровне поставщика. Механизм сохранения и извлечения персонализированных данных состоит из компонента поставщика и хранилища данных. ASP.NET включает поставщик Microsoft SQL по умолчанию и базу данных. Можно также создать настраиваемый поставщик и настроить данный поставщик на использование любого хранилища данных.

  • Объявленные в любом элементе управления веб-частей. При разработке настраиваемого элемента управления можно добавить в код атрибут Personalizable, чтобы включить определенное свойство в любой элемент управления веб-частей для персонализации. Кроме настраиваемых элементов управления, производных от класса WebPart, это также относится к серверным элементам управления ASP.NET, настраиваемым серверным элементам управления или пользовательским элементам управления, поскольку эти элементы управления могут использоваться как элементы управления веб-частей.

    z36h8be9.alert_note(ru-ru,VS.90).gifПримечание.

    Важно понимать, что обычные свойства обрабатываются по-разному, поэтому эти свойств не могут быть сохранены как персонализируемые свойства. Если программно добавить элемент управления WebPart или другие серверные элементы управления в зону WebPartZoneBase и попытаться программно задать неперсонализируемые свойства этой зоны (например, если задать свойство Text элемента управления Label), то после добавления элементов управления значения свойств будут сброшены к первоначальным, поскольку не существует способа сохранения этих свойств в долговременном хранилище персонализации. Чтобы сохранить свойства в долговременном хранилище, эти свойства должны быть отмечены в исходном коде атрибутом Personalizable. В качестве альтернативы, если необходимо сохранить свойства только для запросов в одном сеансе веб-обозревателя (но не в долговременном хранилище), можно использовать состояние просмотра.

Персонализация и другие возможности ASP.NET

Персонализация во многом отличается от других методик ASP.NET в части сохранения данных о состоянии веб-приложения:

  • Персонализация является функциональной возможностью веб-частей. Персонализация не может использоваться сама по себе. Чтобы использовать персонализацию, необходимо использовать элементы управления в объекте WebPartZone, т. е. те элементы, которые будут обладать функциональными возможностями веб-частей.

    z36h8be9.alert_note(ru-ru,VS.90).gifПримечание.

    Любой серверный элемент управления ASP.NET, настраиваемый элемент управления или пользовательский элемент управления может быть использован в качестве элемента управления веб-частей, чтобы воспользоваться преимуществами персонализации.

  • Персонализация отличается от состояния просмотра. Как с помощью состояния представления, так и с помощью персонализации сохраняются данные о состоянии элемента, но данные состояния просмотра хранятся только в течение текущего сеанса веб-обозревателя, а данные персонализации хранятся в течение продолжительного времени.

  • Персонализация отличается от профилей. С помощью персонализации сохраняются данные о состоянии, относящиеся к конкретному пользователю для элементов управления только на определенных веб-страницах. Сведения, которые характеризуют самого пользователя, и предназначенные для использования в нескольких страницах веб-приложения (например сведения о счете в приложении корзины покупок), должны храниться в профиле. Дополнительные сведения см. в разделе Общие сведения о свойствах профилей ASP.NET.

Ключевые понятия персонализации

При использовании персонализации с элементами управления веб-частей следует понимать несколько базовых понятий, которые непосредственно касаются работы персонализации.

Первое базовое понятие — область персонализации. Область персонализации страницы — это круг пользователей, к которым могут применяться изменения персонализации на странице. В любое данное время веб-части страницы могут быть в одной из двух возможных областей персонализации — «Shared» или «User». В области «Shared» любые изменения персонализации на странице применяются ко всем пользователям, в области «User» изменения персонализации на странице применяются только к текущему пользователю.

Второе, связанное с первым базовое понятие — видимость элемента управления. С помощью видимости элемента управления определяется, является ли данный элемент управления видимым для отдельных пользователей или для всех пользователей. Каждый элемент управления WebPart на странице является либо общим элементом управления, который видим всем пользователям данной страницы, либо элементом управления, который виден только для отдельных пользователей. Видимость определяется тем, каким образом элемент управления добавлен на страницу. Если элемент управления добавлен путем объявления его в разметке веб-страницы (статический элемент управления), то этот элемент управления является общим элементом управления. Если элемент управления добавлен кодом приложения или пользователем посредством выбора этого элемента управления из перечня элементов управления (динамический элемент управления), то видимость определяется текущей областью персонализации страницы. Если страница находится в области «Shared», то динамически добавленный элемент управления является общим, и если страница находятся в области «User», элемент управления является индивидуально настраиваемым.

Третьим важным базовым понятием является область свойства. При создании персонализируемого свойства в элементе управления с помощью атрибута Personalizable в исходном коде можно установить область персонализации либо Shared, либо User (User является областью персонализации по умолчанию). Это предоставляет детальный контроль над теми свойствами в элементе управления, которые могут быть персонализированы всеми пользователями и теми свойствами, которые могут быть персонализированы только авторизованными пользователями, если областью страницы является Shared.

В целом эти базовые понятия области персонализации страницы, видимости элемента управления и области персонализации свойства формируют диапазон параметров, которые определяют, каким образом элементы управления веб-частей могут просматриваться и персонализироваться пользователями. В следующей таблице обобщены варианты поведения элементов управления веб-частями в зависимости от персонализации пользователями в различных областях.

Видимость элемента управления

Страница в области «Shared»

Страница в области «User»

общий элемент управления (элементы управления WebPart являются общими по умолчанию).

Авторизированный пользователь может персонализировать для всех пользователей свойства элемента управления из обеих областей «Shared» и «User».

В случае применения динамического элемента управления (элемент управления, который добавляется на страницу программно или из каталога элементов управления), авторизированный пользователь может постоянно удалять этот элемент управления для всех пользователей.

Статический элемент управления (элемент управления, который объявлен в разметке на странице ASPX) удалить невозможно, однако авторизованный пользователь может закрыть данный элемент управления для всех пользователей.

Отдельные пользователи не могут персонализировать свойства в области «Shared». Эти пользователи могут персонализировать свойства в области «User», а значения, заданные пользователями для этих свойств, имеют приоритет над значениями свойств, которые присвоены при расположении страницы в области «Shared». Если данные персонализации элемента управления, относящиеся к конкретному пользователю, потеряны или сброшены, то свойства в области «User» возвращаются к значением, которые они имели, когда страница находилась в области «Shared».

Отдельные пользователи могут закрыть общий элемент управления для себя, и этот элемент управления добавляется в каталог страниц, однако эти пользователи не могут удалить данный элемент управления.

Индивидуально настраиваемый элемент управления

Данный элемент управления не может быть персонализирован на странице в области «Shared», поскольку элемент управления даже не появляется на странице. Данный элемент управления появляется, когда страница находится в области «User».

Отдельные пользователи могут персонализировать персонализируемые свойства в обеих областях «Shared» и «User» для себя, поскольку экземпляр элемента управления является полностью закрытым.

Отдельные пользователи также могут окончательно удалить элемент управления.

Основные компоненты персонализации

В следующей таблице показаны два компонента набора элементов управления веб-частей, которые являются основными для персонализации; они используются прямо или косвенно, когда бы ни использовалась персонализация.

Элемент управления веб-частей

Описание

WebPartManager

Управляет всеми веб-частями на странице, включает или отключает персонализацию и управляет жизненным циклом данных персонализации. На каждой странице веб-частей обязательно размещается только один элемент управления WebPartManager.

WebPartPersonalization

Реализует логику, необходимую для выполнения действий персонализации.

См. также

Основные понятия

Общие сведения о веб-частях ASP.NET

Требования для использования персонализации веб-частей

Общие сведения о свойствах профилей ASP.NET

Ссылки

Общие сведения о наборе элементов управления веб-частей