【问题标题】:EpiServer CMS 5 R2: Custom Page Providers - The right choice?EpiServer CMS 5 R2:自定义页面提供程序 - 正确的选择?
【发布时间】:2009-02-03 10:30:06
【问题描述】:

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

非常感谢!

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

【问题讨论】:

    标签: .net architecture episerver design-decisions


    【解决方案1】:

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

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

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

    所以你的问题的答案:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 不用担心,大客户 - 他们有多个企业许可证。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-03
          相关资源
          最近更新 更多