2009-02-03 3 views
0

Я использую EpiServer CMS 5R2 в новом проекте. Мне было поручено создать CustomPageProvider для связи с существующим хранилищем, который мы не контролируем. Однако, глядя на поставщике образца (XmlPageProvider) представляется, что провайдер несет ответственность за поддержание метаинформации, что EPiServer необходимо, например (от examples.xml документа):EpiServer CMS 5 R2: Пользовательские поставщики страниц - правильный выбор?

<page id="10011" parent="10010" pagetypeid="3" versionid="1" security="Everyone:Read;Administrators:Create,Edit"> 
    <property name="PageGUID">35a988fe-2bc1-4e45-a41f-3a009a660551</property> 
    <property name="PageTypeID">3</property> 
    <property name="PageWorkStatus">4</property> 
    <property name="PageFolderID">118</property> 
    <property name="PageTypeName">[Public] Standard page</property> 
    <property name="PageMasterLanguageBranch">en</property> 
    <property name="PageLanguageBranch">en</property> 
    <!---- SNIP! ----> 
    <property name="Heading">A subpage</property> 
    <property name="MainBody"><p>an external subpage</p></property> 
    <property name="SecondaryBody"><p>second body</p></property> 
    <property name="MetaAuthor">John Doe</property> 
</page> 

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

Итак, вопросы:

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

  2. Если да, можно ли вернуть эту ответственность на EpiServer?

  3. Если нет, можете ли вы дать мне какие-либо рекомендации относительно наилучшего подхода к хранению этих данных? Поскольку это сверх и выше того, что будет происходить из нашего источника данных.

Очень ценный!

Роберт Стивенсон-Leggett

ответ

1

получил это от моего вопроса на EPiServer CMS Форум: http://world.episerver.com/Forum/Pages/thread.aspx?id=27574&pageIndex=1

RE: Пользовательские Провайдеров Страница Отправлено: Johan Björnfot 03 февраля 2009, 13: 43:28

Данную информацию о метаданных вы не храните на своем внутреннем складе. Есть вспомогательные методы в PageProviderBase, например. InitializePageData (устанавливает метаданные ) и SetPropertyValues ​​ (устанавливает мета и/или настраиваемые параметры) , который поможет вам инициализировать объекты PageData.

So ответы на вопросы:

  1. Это звучит как PageProvider может поместиться хорошо для вашей цели.

  2. Использование InitializePageData для обработки метаданных (InitializePageData будет установить значения по умолчанию для мета свойства например статус опубликованной и так далее). Если вы хотите установить другое значение купола , значение свойства метаданных, чем по умолчанию, например. статус (опубликуйте и т. д.), вы можете сделать это, вызвав затем SetPropertyValues.

  3. Если дополнительные данные необходимо хранить вне хранилища, то - это несколько вариантов для этого (обычная таблица в db, файл и т.д.).Какой один для использования зависит от вашей среды, типа данных для хранения и т.д.

1

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

+0

Не беспокоитесь об этом, большой клиент - у них есть несколько корпоративных лицензий. –

1

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

1

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

Это говорит о том, что я был бы здесь осторожен, так как есть достаточно много сантехники, которую вы должны ввести в действие, и вы должны внимательно относиться к производительности для больших источников данных.

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

Об этом подробно обсуждается здесь: EPiServer page providers and performance.