在哪里放类表示模型?

时间:2012-03-23 20:58:50

标签: c# asp.net-mvc-3

我正在从Sanderson Pro ASp.net mvc3这本书中创建一个项目。 但我遇到了问题。 我有一个类CreateDiscountViewByUser - 一个描述用户创建折扣的类。 我不知道把它放在哪里。 在她的书中,我必须把myproject.WebUI。但我想在myproject.Domain DiscountRepository中创建一个方法。 但myprojec.Domain看到myproject.WebUI。 我该怎么办?

另一个大问题mypoject.Domain - 一个类库。并且他没有使用System.ComponentModel.DataAnnotations;

的空间

1 个答案:

答案 0 :(得分:0)

我不知道这本书,但......

您的域名不应该了解您的视图或数据的呈现方式。它也不应该知道如何从存储库中获取数据。它的工作是通过仅改变状态来控制域逻辑。 存储库实现也应该在不同的项目中。然后CreateDiscountViewByUser应该在UI项目中,因为它与视图密切相关。如果您必须将DataAnnotations放在您的类的属性中,那么请使用DTO

所以,我的建议是:

  1. <强>域

    • 用户
    • 产品有方法 Product.ApplyDiscount(Discount))
    • IDiscountRepository
    • IUserRepository
  2. 基础设施 * 知道域名

    • DiscountRepository:IDiscountRepository

  3. 用户界面 * 了解域名和基础架构
    • CreateDiscountViewByUser
    • DTO的