我已经研究了一段时间的Orchard CMS,我对他的一些未来很满意,但我也有一些我不知道如何处理它们的问题:
所有项目(内容类型)都是线性的,它们不支持树状数据结构 (例如:图书>标题>网络链接)
一个大问题(取决于你看到的东西)是模型和项目的视图是耦合的(内容部分>驱动程序与显示/编辑器视图)
因此,对于新页面,模型,视图和位置都被锁定,您只能拥有模型的一个视图。
使用高级语言期货不适合初学者开发人员并且不太清楚(动态函数,粘土对象 - 美好的未来......)
// 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)
);
对于初学者来说,这种语法不是很清楚,并且有点过度设计。另外,因为模型是视图中的动态对象,所以我们没有任何智能感知支持。
要构建新页面,我们有三度分离(3个项目)
您如何使用Orchard CMS在项目中克服这些问题?以及你发现和修复的其他问题:)
答案 0 :(得分:3)
编辑2:你不能只拥有一个模型视图。您可以拥有任意数量的显示类型。例如,项目的摘要视图以这种方式处理。您还拥有管理员视图的显示类型,您可以添加自己的显示类型。 不确定你的意思是“位置被锁定”。如果我们的意思是相同的位置,我很困惑你怎么能得到这样的想法。可以通过placement.info。
更改零件和字段的相对位置编辑3:即使有这个例子,我也不确定这里有什么困难。这是非常有表现力的imo。你是否混淆了自己,或者你只是假设人们会这样? 你声称这是过度设计的。你会如何简化呢?您认为不需要什么功能? 您没有在模型对象的视图中获得IntelliSense,但通过这样做获得的灵活性可以大大提高它的合理性。问任何一直在真正使用它的人。
新的第4点:我看不出你为什么要把它分成三个模块或为什么你认为你应该这样做的原因。我当然没见过这样的例子。我还要指出,创建部件和类型通常由两个不同的人完成(类型创建者通常只是现有部件的消费者)。但同样,您不必将它们分成不同的模块。 一个主题显然是与另外两个主题不同的关注,并且有意义成为一个单独的项目,但主题可以带有代码,实际上原则上可以执行模块正在做的所有事情。因此,如果您想将零件,类型和主题打包到一个包中,您可以这样做。它没有多大意义,但你可以。 最后,我看不出这四点中的任何一点与页面创建有什么关系。答案 1 :(得分:2)
Orchard必须被视为挑战。作为初学者,我很快就建立了一些网站。之后,学习曲线变得更加陡峭。我已经多次阅读过很多关于这个主题的文章。
我之前使用过一些CMS,并且知道管理内容的本质是什么。学习Orchard开辟了一个全新的内容管理定义。现在,我可以通过实施Orchard来考虑解决一些日常任务和各种业务流程。
整个事物都是在一个非常抽象的层中构建的,迫使你思考抽象。如果您按照这种方式,有许多博客文章,以及官方文档,以帮助您。
很少有基本的构建块和概念可以像砖块一样使用。听起来像一个短语,我听说它有点时间。我还看到成千上万的房子都是用红砖砌成的,而且它们都是不同的,而砖块都是平等的。这些事情可以通过乌节来完成。
阅读并理解编程模式。它们是帮助您解决基于Orchard的任务的知识的重要组成部分。它们还将帮助您改变完成非Orchard相关任务的方式。
我想说,有两个基本领域需要了解。存储和检索内容是一个,而另一个是向人群呈现。它可能看起来很难,很难,但背后的好东西是令人愉快的。更不用说伟大的人,有些来自邪恶的帝国,有些不是,这肯定会帮助你一路走来。别忘了,git是你最好的朋友。已经发明了许多车轮。小心,没有免费午餐。
P.S。自usenet时代以来,我没有写过如此长的帖子。它可能不适合这样的网站。这是一种感谢这个法国人,以及来自波兰的所有其他果园传道者,塞浦路斯到美国的方式。他们在很多场合救了我的屁股。