【问题标题】:Validation in BLLBLL 中的验证
【发布时间】:2011-08-31 01:53:29
【问题描述】:

我在某处读到我应该在我的 BLL 和 UI 中执行验证。是这样吗?我应该如何处理错误/异常?

我正在创建一个应用来管理我们的客户数据。如果该客户端没有附加项目,用户可以删除该客户端。 BLL中的sub如下:

Public Shared Sub DeleteClient(ByVal clientsID As Integer)

        Dim clientDataAccessLayer As New ClientDAO
        clientDataAccessLayer.DeleteClient(clientsID)

End Sub

如果客户有任何项目,我已经在检查 UI 并且不调用此子程序,但我是否还应该在此子程序中添加一些验证,我应该怎么做?抛出异常还是根本不允许它运行?

【问题讨论】:

    标签: asp.net validation user-interface business-logic


    【解决方案1】:

    是的。你应该在这个 sub (bll) 中添加一些验证并抛出你的 UI 应该处理的异常。

    这似乎违反了 DRY 原则(因为您正在重复逻辑以停止 UI 上的选项),但业务层应始终保持数据完整性。例如,如果您向应用程序引入不同的 UI 或 Web 服务,则数据完整性将保持不变。

    【讨论】:

    • 谢谢,我会研究如何处理异常,因为我以前没有这样做过。
    【解决方案2】:

    我在某个地方读到了我应该去的地方 在我的 BLL 中执行验证为 以及用户界面。是这样吗以及如何 我应该处理错误/异常吗?

    您的异常处理应仅在表示层中完成。 原因 - 假设您有 Presentatin/DAL/BLL。在任何地方实施异常处理都会导致性能问题。而另一方面,在表示层实现异常处理将导致异常自动出现在调用函数的 catch 块中

    只有在对数据库结果进行验证检查时才应在 BLL 中进行验证。

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2015-05-13
      相关资源
      最近更新 更多