Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net BLL中的验证_Asp.net_Validation_User Interface_Business Logic - Fatal编程技术网

Asp.net BLL中的验证

Asp.net BLL中的验证,asp.net,validation,user-interface,business-logic,Asp.net,Validation,User Interface,Business Logic,我在某个地方读到,我应该在我的BLL和UI中执行验证。是这样吗?我应该如何处理错误/异常 我正在创建一个应用程序来管理我们的客户数据。如果客户机没有附加任何项目,则用户可以删除该客户机。BLL中的子项如下所示: Public Shared Sub DeleteClient(ByVal clientsID As Integer) Dim clientDataAccessLayer As New ClientDAO clientDataAccessLayer.Del

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

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

Public Shared Sub DeleteClient(ByVal clientsID As Integer)

        Dim clientDataAccessLayer As New ClientDAO
        clientDataAccessLayer.DeleteClient(clientsID)

End Sub

我已经在检查UI,如果客户机有任何项目,我不会调用此sub,但是我是否应该在该sub中添加一些验证,以及我应该如何做?抛出异常或干脆不允许它运行?

是。您应该在此子文件(bll)中添加一些验证,并抛出一个您的UI应该处理的异常

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

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

您的异常处理只能在表示层中进行。 原因-假设您有presentation n/DAL/BLL。执行异常处理后,到处都会导致性能问题。另一方面,在表示层实现异常处理将导致异常自动出现在调用函数的catch块中


只有在对数据库结果进行验证检查的情况下,才应在BLL中进行验证。

谢谢,我将研究如何处理异常,因为我以前没有这样做过。