Umbraco:Node,DynamicNode,Content之间的差异

时间:2012-09-14 08:27:19

标签: c# performance umbraco

然后有许多代表Umbraco文档的类:

1) umbraco.cms.businesslogic.Content
2) umbraco.cms.businesslogic.web.Document
3) umbraco.MacroEngines.DynamicNode
4) umbraco.presentation.nodeFactory.Node

还有其他人吗?

你能解释一下他们做了什么,以及何时使用它们?

umbraco.MacroEngines.DynamicNode umbraco.presentation.nodeFactory.Node 似乎相同。也许最好使用Node类,因为它更快?

我有一个理论:

umbraco.cms.businesslogic.Content umbraco.cms.businesslogic.web.Document cmsContent 的表示形式cmsDocument 数据库表。

umbraco.presentation.nodeFactory.Node umbraco.MacroEngines.DynamicNode 表示在XML文件中缓存的节点,以便用于网站。 第一个是简单的Node,第二个是添加了动态属性的同一个Node,一个是nodeType中定义的属性。 所以,我认为 Node DynamicNode

更快

是否有人可以证实这一点?

3 个答案:

答案 0 :(得分:10)

基于个人用途:

  1. 内容:永远不要直接使用它,而是使用Document | Media | Member api(继承自此类)。
  2. 文档:用于创建|更新|删除操作。它直接对DB执行所有操作,因此只有在需要直接从数据库中获取值时才应该用于读取。
  3. 节点:最常用:读取时|通过用户控件,代码库,xslt扩展等显示数据
  4. DynamicNode:Razor宏。我还没有足够使用这个来提供更多信息。
  5. 请参阅下面的更多详细信息,但不,Node和DynamicNode不相同(DynamicNode使用Examine,如果需要,也会回退到数据库中读取)。

      

    <强> umbraco.cms.businesslogic.Content:    内容是CMSNode和将使用通用数据的类之间的中间层。内容是一种数据结构,用于保存在其对应的ContentType中定义的通用数据。内容可以在某种程度上与数据库表中的行进行比较,其ContentType包含列的定义,Content包含数据。请注意,umbraco中的内容数据表格,但在树状结构中。

    我从来没有必要直接使用这个类,因为它的所有操作都由相应的子类处理,例如:Document,Media,Member。这个类轮流继承自CMSNode,它是umbraco中每个内容数据的基类

      

    umbraco.cms.businesslogic.web.Document :文档代表一个网页,已发布文档在缓存的xml文档中公开给运行时/公共网站。

    在引用“内容部分”中的节点时使用此类。它处理CRUD操作。通过这个类,您还可以获得对每个属性的DataType的引用,以防您想在aspx页面中呈现这些控件。

      

    umbraco.NodeFactory.Node :它实现了公开只读方法的INode接口。它的所有信息都来自umbraco缓存的xml。您将无法访问每个属性的控件,而是根据数据类型对每个属性的值进行访问。

    您只能使用此类进行阅读操作。它使得显示数据非常快,因为所有内容都来自缓存(仅限已发布的节点)。

      

    umbraco.MacroEngines.DynamicNode :它实现了与razor宏一起使用。它在引擎盖下使用NodeFactory,这意味着它还可以访问缓存的xml。虽然如果使用相关的DynamicMedia,请小心使用:1:ExamineIndex删除任何html标签,2:它在umbraco_v4.11.5中回退到默认的媒体类型(如果它不在运行时缓存中,则为db)。 / p>

    与上述相同。

答案 1 :(得分:3)

我只知道Document和Node之间的区别。 Node类使用存储在umbraco缓存中的数据,Document类将直接从数据库中获取数据。 节点比Document快。 节点仅返回保存和发布的内容。

95%的时间你应该使用Node。

答案 2 :(得分:0)

内容允许您从数据库中检索/编辑任何内容(页面/媒体/ ..)(包括未发布的内容),文档允许您仅从数据库检索/编辑页面内容(包括未发布的内容),节点用于从XML缓存中快速只读访问(仅发布)页面内容,动态节点与Node相当,但在Umbraco的更高版本中使用Razor实现宏