2010-04-07 80 views
0

我对DDD方面感到困惑的一件事是,我们的域应该处理所有业务逻辑并执行不变量。我注意到有些人(包括我在内)使用javascript处理表示层(即WebForms,Views等)中的某些不变量。这主要是为了提高性能,以便服务器不会受到可能无效的每个请求的影响。DDD:执行不变量的客户端脚本

尽管这种方法在性能上可能是有益的,但它违反了DDD原则。如果业务规则改变了会怎样?这样我们就没有一个拥有所有业务规则的丰富域。如有更改,我们应更改域名以及表示层

有没有人遇到过这种情况?

我想知道你对此的看法。

干杯,

MOSH

回答

0

一个框架,支持干的,服务器和客户端验证,是ASP.NET MVC 2

这是通过从模型规则生成JavaScript做发送给客户端。

你可以阅读更多关于它在这里:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

+0

我知道在ASP.NET MVC 2。然而,验证功能,我这里指的是这里是更复杂的验证规则。像: 如果某些复选框被选中,并且没有项目添加到列表中然后显示一些消息。 它比空或数据范围等验证输入字段更多。 – Mosh 2010-04-08 02:58:07

+0

如果您希望您的代码能够DRY并解决复杂的模型验证客户端问题,我建议您允许您的实体处于无效状态,并且让他们报告什么是无效的(我经常使用某种BrokenRule集合)。 然后你的Controller/Presenter/ViewModel使用这些信息来相应地更新视图。 – 2010-04-08 07:12:27