2010-11-04 26 views
1

我已經在ASP.NET MVC中完成了一些項目,並且有一個主題我沒有在任何地方見過。我想就此獲得其他人的意見。ASP.NET MVC模式模式:什麼效果最好?

設計模型的一些最佳實踐是什麼?過去我採取了兩種方法:模型應該代表不同的實體,還是應該具有域特定的(子域特定的?查看特定的?)模型?真正的區別在於表示不同實體的模型在多個視圖中使用,其中域特定模型與特定視圖綁定。

請考慮以下幾點:我的應用程序中有一個用戶實體。我是否應該在Register視圖,Show視圖,Index視圖等中使用一個UserModel,或者最好是具有RegisterUserModel,ShowUserModel,ListUserModel等?

我以前使用過這兩種模式。領域特定模型的優勢在於,通過屬性應用的任何驗證邏輯在視圖之間可以是不同的。不利的一面是你違反DRY,你的模型變得非常多毛 - 即使你將它們分隔到命名空間。相反,使用單一的模型到實體模式會導致過度通用的驗證數據(通常是關於錯誤消息),但是您擁有一個不錯的緊密模型層,並且模型和實體之間的轉換更容易(代碼少)。

SO更喜歡什麼方法?或者有沒有我甚至沒有考慮過的方法?

+0

我相信你會從喜歡這兩種方式的人那裏得到答案。這很主觀。 – Dismissile 2010-11-04 17:36:02

+0

這不是討論的樂趣嗎? – 2010-11-04 18:06:22

回答

2

當我想到域模型,我認爲有關業務邏輯。我嘗試讓MVC中的M引用輔助應用程序表示方面的模型,而不是表示我的真實世界對象的實體(域對象)。

+0

我也贊同這一點,我認爲很多其他的框架錯過了這個 - 即RoR。 – 2010-11-04 18:05:47

1

模型和視圖shuld是一對。構建巨大的模型類和巨大的意見不是好主意。在我看來,在你的視圖中,模型只能代表你業務邏輯的必要部分。例如。當您創建註冊表格時,儘可能簡化您的模型和視圖 - 創建RegisterUserModel.csRegisterUserView.aspx。不要傳遞整個用戶對象。讓它變輕,不要違反單一響應原則。