Orchard CMS存在的问题

5

我已经研究了一段时间的Orchard CMS,我对它的某些功能感到满意,但也有一些问题我不知道如何处理:

  • All the items (content type) are linear and they don't support a tree like data structure (Ex: books > titles > web-links)

  • One of the big problem (depending how you see things) is that the model and the view for the items are coupled (content part > driver with display / editor views)

    So for a new page the model, view and position are locked and you can have only one view of the model.

  • Use of advance language futures the are not suited for beginner developers and are not very clear (dynamic functions, clay objects - nice future, ...)

    // Creating table VPlayerRecord
    SchemaBuilder.CreateTable("VPlayerRecord", table => table
    .ContentPartRecord()
    .Column("Title", DbType.String)
    .Column("VideoUrl", DbType.String)
    .Column("WidthPx", DbType.Double)
    .Column("HeightPx", DbType.Double)
    );
    

    This syntax is not very clear for beginner developers and is a bit over engineered. Also because the model is a dynamic object in the view we don't have any intellisense support.

  • To build a new page we have something like three degree of separation (3 projects)

    • Build a content part module
    • Build a content type
    • Build a theme module
你在使用Orchard CMS时,如何解决这些问题?还遇到了哪些其他问题,并进行了修复呢?

请您能否详细说明一下最后两点? - Benedict Tesha
1
这与编程有什么关系? - user1228
2个回答

3
  1. 请阅读此链接:http://orchardproject.net/docs/Creating-1-n-and-n-n-relations.ashx,以及此链接:http://orchardproject.net/docs/Creating-lists.ashx
  2. 您认为这是什么问题?为什么您认为这是耦合的?您有什么替代方案吗?
  3. 您在哪里看到这是一个问题,并且它如何阻碍了您?
  4. 即使有了这个例子,我也不确定会有什么困难。我认为这相当具有表现力。你是否感到困惑,还是只是假设别人会感到困惑? 您声称这是过度工程化。那么您会如何简化它呢?您认为哪个功能不需要? 在模型对象上的视图中,您无法获得 IntelliSense,但通过这样做所获得的灵活性绝对值得。请问任何一个真正使用它的人。

编辑2:不能只有一种模型视图。您可以拥有任意数量的显示类型。例如,项目的摘要视图就是这样处理的。您还可以为管理视图添加自己的显示类型。 我不确定您所说的“位置被锁定”。如果我们对“位置”有相同的理解,我很困惑您是如何得出这样的想法的。通过 placement.info,可以更改部件和字段的相对位置。

编辑3:即使有了这个例子,我也不确定会有什么困难。我认为这相当具有表现力。你是否感到困惑,还是只是假设别人会感到困惑? 您声称这是过度工程化。那么您会如何简化它呢?您认为哪个功能不需要? 在模型对象上的视图中,您无法获得 IntelliSense,但通过这样做所获得的灵活性绝对值得。请问任何一个真正使用它的人。

新的第四点:我看不出为什么您要将其分为三个模块或者为什么您认为应该这样做。我从未见过这样的例子。我还要指出,创建部件和类型通常由两个不同的人完成(类型创建者通常只是现有部件的使用者)。但是,您不必将它们分成不同的模块。 主题显然是与其他两个不同的问题,因此将其作为单独的项目是有意义的,但主题可以带有代码,并且原则上可以做到模块所做的一切。因此,如果您想将部件、类型和主题打包成一个单独的包,这是可行的。这并没有太多意义,但您可以这样做。 最后,我不明白这四个要点与页面创建有什么关系。


我已经编辑了主帖,你能看一下吗?感谢您提出的第一个建议。 - bmustata

2
Orchard必须被视为一个挑战。作为一个初学者,我很快就轻松地建立了一些网站。之后,学习曲线变得更加陡峭。我已经多次阅读了许多有关此主题的文章。
我以前使用过一些CMS,并且对管理内容的性质有一定的了解。学习Orchard开启了全新的内容管理定义。现在,我可以考虑通过实施Orchard来解决一些日常任务和各种业务流程。
整个系统都建立在一个非常抽象的层上,迫使你也要思考抽象。如果你按照这种方式进行,有许多博客文章以及官方文档可以帮助你。
有一些基本的构建块和概念可以像积木一样使用。听起来像一个短语,我听过无数次。我也见过成千上万由红色正方形砖块建造的房子,它们都不同,而砖块都是相同的。这些事情可以通过Orchard实现。
阅读并理解编程模式。它们是解决基于Orchard的任务所需的知识的重要组成部分。它们还将帮助您改变完成非Orchard相关任务的方式。
我想说,有两个基本领域需要理解。存储和检索内容片段是其中之一,而向人群展示它则是另一个。它可能看起来很困难,确实很困难,但背后的好处是令人愉悦的。更不用说一些来自邪恶帝国的伟大家伙,有些不是,他们肯定会在路上帮助你。别忘了,git是你最好的朋友。已经有许多轮子发明出来了。注意,没有免费午餐。
附言:自usenet时代以来,我还没有写过这么长的文章。它可能不适合这样的网站。这是一种感谢这位法国人以及来自波兰、塞浦路斯到美国的所有Orchard传道者的方式。他们在许多场合都救了我的命。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接