1

我需要创建几个不同的模块,所以我正在寻找最好的方法,我希望那些知道的可以提供一些建议。

我想要实现的目标理论上可以使用 Orchard 及其现有默认模块提供的 ContentTypes、Fields、Taxonomies、Queries 和 Projections 的混合来完成。

但是,由于我正在为没有经过培训或经验的最终用户创建模块,因此我确实需要简化和掌握。

我编写的模块将来会被重用,我希望能够很容易地添加/删除字段。

我需要创建一个与内容管理器分开的管理部分来管理模块(为了便于使用)。

目前的做法似乎是使用我在模型中需要的输入创建零件,并按照传统的 MVC 方法手动写出形状等。

我要问的问题是:使用 Fields 模块为我处理这些输入是否可行?然后我(相信我)可以利用 Shape 渲染所有现成的作为 Fields 模块的一部分(因为我真的很喜欢 Fields 模块以及它的可扩展性)。

这种方法的主要缺点是什么?

我试图在不太具体的情况下说清楚,但如果我还没有提供更多信息,我愿意提供更多信息。

4

1 回答 1

2

我认为在这里更具体不会有害。但以同样的方式回答:

部件比字段更具可扩展性,并且所有部件都使用形状来构建布局(我不确定您在字段模块中发现了什么引起了您的注意,您认为只有部件才有可能?)。

但是,部件和字段之间存在一些关键区别(因此我认为您的问题是如何对要存储的数据进行建模):

  • 部件可以(但不一定应该)对应于数据库表,即部件可以将其数据存储在表中。
  • 字段的数据以序列化的 XML 格式沿内容项的 ContentItemVersionRecord 存储(因此由于序列化而性能更差,但由于不必加入或延迟加载其他表而更好;具体的性能差异取决于使用情况)。
  • 由于存储的不同,部件的属性可以直接查询并用于过滤或排序,而字段不能查询。Projector 模块通过为字段创建索引来克服这个问题。
  • 还与存储有关,一个部分可以包含任意数量的信息,而一个字段只能包含一个(这是字段的值)。
  • 虽然一个部分可以附加到一个内容类型一次,但一个字段可以附加多次。
  • 部件附加到内容类型,而技术上的字段附加到部件(当您从管理 UI 将字段附加到内容类型时,实际上将创建一个与类型同名的不可见部件)。
于 2013-03-17T00:42:47.013 回答