如何处理只能在UI中实现的业务逻辑?

Gol*_*hip 2 asp.net-mvc design-patterns domain-driven-design business-logic

也许这个问题有点白痴,因为在业务层可以保证一切,但我不知道是否应该让efford为业务逻辑层带来这种保证.

例:

我在ASP.NET应用程序中有一个业务逻辑,如果用户登录,用户只能访问产品列表的第二页.在ASP.NET应用程序中,WebSecurity会关注用户登录,所以我可以' t在业务层中调用WebSecurity方法.我怎么处理它呢?只在UI层中保留此法律?

Yor*_*rro 6

业务逻辑是一个广义的术语,很容易让开发人员误解他们所谈论的逻辑.人们认为"如果它是客户要求那么它必须是商业逻辑".

  1. 应用程序逻辑 - 这些是专门为应用程序制作的类型逻辑.他们确保应用程序运行顺畅,例如过滤掉垃圾输入.

    • UI输入验证(如电子邮件)应始终类似于user@domain.com
    • 应用安全,登录.
  2. 业务逻辑 - 这些逻辑来自问题领域.这些是现实世界的商业规则.

    • 如果您可以在不提及申请的情况下谈论规则,那么它是一个很好的候选人.

这是一个简单的练习:以下项目是用户年龄的验证.找出哪一个属于应用程序逻辑或业务逻辑.

  1. 年龄应始终为数字,并且在1到100之间.
  2. 用户年龄必须在18岁或以上.

提示:如果客户试图购买啤酒,收银员将永远不会询问客户的年龄是否为数字,或者是否在1到100的范围内.

在现实世界中,出纳员是业务的一部分,并执行规则.它假定客户的年龄是正常的,而不是1000.

如果您是否经过身份验证,业务部门并不关心.你在那里做生意,就是这样

回答我的小练习:

  1. 年龄应始终为数字,并且在1到100之间. - 此验证是应用程序逻辑.应用程序的工作是确保用户输入的质量.没有垃圾输入.

  2. 用户年龄必须在18岁或以上.此验证是业务逻辑.该企业假设输入的格式或范围正确,所有必须做的就是检查您是否被允许购买啤酒.