BLL中的验证

时间:2011-05-23 11:02:11

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

我在某处读过我应该在我的BLL和UI中执行验证。是这种情况,我应该如何处理错误/异常?

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

Public Shared Sub DeleteClient(ByVal clientsID As Integer)

        Dim clientDataAccessLayer As New ClientDAO
        clientDataAccessLayer.DeleteClient(clientsID)

End Sub

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

  

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

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

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