域驱动的内容管理?

问题描述:

我想知道 - 在尝试将CMS驱动设计应用于具有相当复杂业务逻辑的CMS应用程序时,应该记住什么?这些野兽是不是相互排斥的?域驱动的内容管理?

Here's article来说明我的意思。

+0

我很好奇看到你可能得到的答案。 – 2010-03-22 14:37:04

+0

@ TomislavNakic-Alfirevic花了一段时间自己回答 – 2012-07-04 09:35:46

这都是正确的去耦狗屎。

通过遵循DDD思路构建应用程序时,CMS的使用并不相互排斥。

CMS只是另一种技术,另一种表达我们问题解决方案的方式,与其他技术(如Asp.Net Mvc,Ruby on Rails,编程语言,甚至完全抽象的东西,如设计模式)没有多大差别。

我应该记住...

DDD目的是要处理复杂的逻辑,所以开始阅读:

的最佳实践,最佳实践的最佳实践

这是一个Great article左右(别忘了,看看DDD资源话题;)

而这Listing会带来一些代码到表(这是C#)。

是不是那些相互独立的野兽 独家?

根本不是。事实上,DDD和复杂的领域逻辑之间存在着很大的关系。当使用DDD时,您最终使用的很多模式都被设想为寻找一种简单的方法来封装处理域时所需的复杂逻辑。例如存储库,工厂,聚合等。

我知道你的意思。在阅读你提到的文章后,你会发现CMS可以很容易地作为一个包含两个不同领域(内容和表示)的项目。这是一个很好的方法,事实上我喜欢它。但DDD模式仍然在应用 - 并且被设计为与它们一起工作:)。

我想你正在谈论使用DDD来开发一个复杂的CMS。


UPDATE: 我不是假设你正在谈论使用DDD开发一个复杂的CMS了。哈哈哈哈

我不能想象如何解开从基础设施 业务逻辑... 呢。

嗨,再次Arnis!

是的! CMS站在aaaaaaall类系统的顶部。好点。那么我们可以做些什么来创建一个灵活且分离的CMS,可以轻松地将集成到以上的其他系统的肩膀上?

关于数据:

- 数据合同,无论你与你的集成CMS系统。您的CMS域模型应该保持几乎不变。限制您将其他系统数据源适配到您的CMS模型的努力。; ) 有用的链接:

关于业务规则:

- 特设业务规则,但不同的系统,有不同的业务规则。而您的CMS在这方面需要一定程度的灵活性。 有用的链接:

希望这给你带来了你的项目的一些有益的想法; )

+0

问题更多地是关于内容管理部分。相互排斥,因为内容管理很少是自上而下的手卷,而是坐落在诸如Web部件,第三方cms框架之类的东西之上,上帝知道还有什么会对所有应用层产生巨大影响。我无法想象如何从基础设施中解开业务逻辑......然而, – 2010-03-31 09:00:20

+0

呃...我的英语语言质量和思维故障反击。对不起。我有一种感觉,我们仍然不会谈论这一点。稍后我会尝试澄清问题。 :) – 2010-04-01 00:48:43

卫报做了他们的experience applying DDD谈话可能有一定的关联作为一个内容丰富的域中的案例研究: