代码之家  ›  专栏  ›  技术社区  ›  James

ASP。NET MVC-具有内置逻辑的实体与业务服务

  •  0
  • James  · 技术社区  · 17 年前

    我目前的架构是基于我的实体,这些实体是数据的简单容器,里面几乎没有逻辑。任何业务决策都是由服务类做出的,这些服务类将实体作为参数,然后返回数据。然而,我发现随着我们的系统规模的增长,这种方法变得有点笨拙。

    <% For Each p In Model.Products %>
      <%= Html.Encode(p.Title) %>
    
      <% If AuthService.CanProductBeOrderedByUser(p, Model.CurrentUser) Then %>
        <a href="#">Click here to order</a>
      <% End If %>
    
    <% Next %>
    

    问题是,这需要在页面中内置逻辑,并且还需要为每次迭代调用服务。如果我在多个地方也需要这些信息,那就需要大量的重复。

    有人对上述内容有何评论,或者对如何改进这一点有何指导?

    谢谢

    4 回复  |  直到 17 年前
        1
  •  2
  •   flq    17 年前

    视图模型 -产品的VM将具有属性的层次结构 IsOrderable .

        2
  •  2
  •   Vitaliy Liptchinsky    17 年前

    当您进行跨实体操作(涉及不同类型的实体)时,业务服务很少。如果您的业务操作仅与一个实体严格相关,那么IMHO最好将此操作放入实体类中。

        3
  •  2
  •   twk    17 年前

    让您的控制器在“产品”列表上执行依赖于客户的过滤,让视图只显示它们。

        4
  •  0
  •   dano    17 年前

    这是一个非常复杂的

    它支持:

    • 交易
    • 现场级验证
    • 多台服务器

    看看这里:

    Official Web Site

    这里有一本“入门”书:

    eBook