我試圖圍繞驗證用戶輸入和驗證業務對象。假設我正在使用Customer對象。它具有以下屬性:CustomerId,FirstName和LastName。 FirstName和LastName是必需的,它們的長度不能超過50個字符。用戶輸入驗證和業務對象驗證混淆
我正在使用ASP.NET MVC 3.我也在試驗Fluent驗證(但不一定是此驗證框架)。
當我在創建客戶視圖,我通過視圖的CustomerViewModel:
[Validator(typeof(CustomerViewModelValidator))]
public class CustomerViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
在CustomerViewModelValidator我設置所需的規則驗證如上所述。這一切在視圖上都可以很好地驗證。現在我有一個問題。在我的應用程序中,我有一個服務層,在這裏我想要應用所有的應用程序邏輯。假設我想保存一個新客戶,那麼我將在CustomerService中有一個Save customer方法,該方法調用CustomerRepository的Save方法。
我可能會有另一個應用程序(上述Web應用程序除外)將使用我的服務層。所以這意味着如果創建了一個Customer對象,我將不得不驗證一個Customer對象。出現以下問題:
- 是否需要驗證CustomerService中的Customer對象以及檢查FirstName和LastName?
- 最好是創建一個新的驗證器類來驗證Customer類嗎?或者我應該分享它?
- 我是否需要驗證CustomerId?我的意思是它應該大於零,但是如何驗證ID爲0的新客戶?
如果任何人都可以分享一些見解/文章,將不勝感激。
我想添加一些業務規則,以及這是什麼?我在哪裏以及如何實施業務規則?