2010-04-07 36 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