有看到这个视频通过格雷格落水上DDD

http://www.infoq.com/interviews/greg-young-ddd

我想知道你如何能执行命令-查询分离(呼叫)与DDD当你有记忆的变化?

与呼叫你有两个资料库,一个命令,一个用于查询。以及两个对象群体,命令对象和查询对象。命令的对象仅有的方法,并没有属性,可以获得的形象,并不要使用的数据显示在屏幕上。查询对象,另一方面是用于数据显示到屏幕上。

在视频的命令经常去的数据库,因此可以使用的查询库,以获取更新的数据和重新显示在屏幕上。

你能不能用呼叫喜欢的东西和编辑画面中ASP.NET更改是在存储器和视需要更新好几次与改变之前的变化是坚持的数据库?

例如

  1. 我取查询对象的查询库和它显示在屏幕上
  2. 我的编辑
  3. 我重新获取的查询对象的查询对象库,并显示它的形式编辑模式
  4. 我改变的价值形式,其autoposts回和获取命令对象和问题有关的命令
  5. 做什么:我现在需要显示更新后的对象为的命令作出改变所计算的领域。作为命令对象没有被保存的数据库我不能使用的查询库。和呼叫我并不是获得形状的命令对象显示在屏幕上。你将如何得到查询对象回来的最新变化显示屏幕上。

几个可能的解决方案我能想到的是有一个会议的存储库或方式获得的查询对象从命令的对象。或者不采用情况不适用于这类情况?

在我看来,在视频变化,获得保留直接的数据库,并且我还没有找到一个例子DDD与采用情况,解决问题的分批处理变化领域对象和更新图修改域的对象,最后才发出命令,以保存域对象。

有帮助吗?

解决方案

如果你真的想要使用的采用情况对于这一点,我要说的是,两者的查询库和编写仓库中都有一个参考同样的后备存储。这通常参照的是通过外部数据库-但你的情况这可能是一个列表<T> 或类似的。

其他提示

所以这听起来像你想在这里是一个更精细的命令。

例如:用户相互作用的网页(让我们说的做检查了一个购物车).

多网页得到的信息是建立一个命令。该命令没有得到发一直到用户 实际上 检查了那里的所有发送的信息在一个单一命令的领域,让我们叫它"结帐"的命令。

演示模型是相当有帮助在抽象这种类型的相互作用。

希望这会有所帮助。

格雷格

也为你的余问题...

这些都是更多这样的关切最终的一致性而不是CQRS.你不需要最终一致CQRS你可以让命令的处理还写到报告储存(或使用相同的物理存储为如所提到的)在一致的方式。我实际上推荐的人做这作为其基础结构和后来通过,并介绍最终一致性需要的地方作为有成本azssociated。

在记忆中,你通常会使用 观察员的设计图案.

实际上,你总是想使用这一模式,但大多数数据库不提供一种有效的方式称呼的方法在应用时的东西在数据库的变化。

单元的工作 设计图案 模式的企业应用程序结构 比赛采用情况非常好-这基本上是一个很大的命令,坚持的东西在数据库。

JdonFramework是CQRS DDD java框架,它提供一个领域事件+异步模式,更多细节 https://jdon.dev.java.net/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top