0

我在一个新项目中使用 EpiServer CMS 5R2。我的任务是创建一个 CustomPageProvider 以链接到我们无法控制的现有后端存储。然而,查看示例提供程序 (XmlPageProvider) 似乎提供程序负责维护 EpiServer 所需的元信息,例如(来自 examples.xml 文档):

<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. 如果没有,您能否就如何最好地存储这些数据给我任何建议?因为它超出了我们数据源的内容。

非常感激!

罗伯特·史蒂文森-莱格特

4

4 回答 4

1

从我在 EpiServer CMS 论坛上的问题得到这个: http ://world.episerver.com/Forum/Pages/thread.aspx?id=27574&pageIndex=1

回复:自定义页面提供者 发布者:Johan Björnfot 于 2009 年 2 月 3 日,13:43:28

您不必在后端存储中存储任何元信息。PageProviderBase 中有一些辅助方法,例如 InitializePageData(设置元数据属性)和 SetPropertyValues(设置元和/或自定义属性)可以帮助您初始化 PageData 对象。

所以你的问题的答案:

  1. 听起来 PageProvider 很适合您的目的。

  2. 使用 InitializePageData 处理元数据(InitializePageData 将为元属性设置默认值,例如状态为已发布等)。但是,如果您想设置圆顶其他元数据属性值而不是默认值,例如状态(发布等),您可以通过调用 SetPropertyValues 来做到这一点。

  3. 如果需要将其他数据存储在后备存储之外,则有多种选择(数据库中的自定义表、基于文件的表等)。使用哪一个取决于您的环境、要存储的数据类型等。

于 2009-02-03T15:07:23.867 回答
1

要使用自定义页面提供程序,还需要许多客户没有的企业许可证。只是为了让您不要忘记就该问题与客户核实...

于 2009-03-12T13:31:04.777 回答
1

您仍然必须处理管理页面 guid、id 和 url - 这对于外部数据存储可能很棘手。查找 MappedPageProvider - 它会为您处理所有这些。

于 2009-09-05T01:45:19.583 回答
1

页面提供程序是一种从外部数据源导入数据的好方法,它们听起来好像它们可能适合您的情况。

也就是说,我在这里要小心,因为您必须安装很多管道,并且您必须非常注意大型数据源的性能。

重要的是要准确了解 EPiServer 何时以及如何请求页面数据——即何时使用页面缓存以及何时尝试访问数据源。最终,您将不得不以一种可以有效搜索的格式缓存关于您的页面的大量信息,尤其是在指向您的数据源的链接相对较慢的情况下。

这里有一个非常全面的讨论:EPiServer page providers and performance

于 2009-09-20T21:59:00.697 回答