在 Umbraco 中,Media 对象与 Node 对象有什么区别?
(我正在开发一个 WebForms 项目。)
关于您的项目是 web 表单,使用这些类没有任何区别。实际上,您可能根本不应该使用这两个类,如下所述。
在 v4.7 中,umbraco.NodeFactory.Node
该类是从 Umbraco 检索已发布内容的默认方法。正如 Martijn 所指出的,发布的内容是 XML 缓存。这取代了umbraco.presentation.nodeFactory.Node
现在标记为过时的类,因此即使在 v4.7 项目中也不应该使用。
在最新版本的 Umbraco 中,DynamicNode
随后IPublishedContent
被引入以替代Node
在已发布 UI 中使用的依赖。
同样在 v4.7 中,Media
是用于从 Umbraco 媒体库中检索任何对象的类。正如 Martijn 指出的那样,这需要调用数据库。媒体现在也被标记为过时,不应使用。
但是,由于 v4.8Media
被替换为DynamicMedia
. 这不会调用数据库,而是调用 Umbraco 的 Lucene 索引,该索引包含有关媒体库中媒体项目的所有信息,因此速度明显更快。在最新版本中,检索媒体的首选方法实际上是使用IPublishedContent
这里http://our.umbraco.org/documentation/Reference/Templating/Mvc/querying
在最新版本的 Umbraco中有一个新Umbraco.Core.Models.Media
类,它会调用数据库,但是这个类是新 Umbraco API 的一部分,因此不应在已发布的 UI 中使用。
媒体对象用于媒体项目。Node 对象用于内容项。查看这些链接。 http://our.umbraco.org/documentation/reference/management/media http://our.umbraco.org/Documentation/Reference/Querying/uQuery/Content/Nodes
此外,从 XML 缓存中读取节点,直接从数据库中读取媒体。