我在某个地方读到,我应该在我的BLL和UI中执行验证。是这种情况吗?我应该如何处理错误/异常?
我正在创建一个应用程序来管理我们的客户端数据。如果客户端没有附加任何项目,用户可以删除该客户端。BLL中的sub如下:
Public Shared Sub DeleteClient(ByVal clientsID As Integer)
Dim clientDataAccessLayer As New ClientDAO
clientDataAccessLayer.DeleteClient(clientsID)
End Sub
我已经在检查UI了,如果客户有任何项目,我不会调用这个sub,但我应该在这个sub中添加一些验证吗?我应该怎么做?抛出异常还是干脆不允许它运行?
是。您应该在这个sub(bll)中添加一些验证,并抛出一个UI应该处理的异常。
这似乎违反了DRY原则(因为您正在重复逻辑以停止UI上的选项),但业务层应该始终保持数据完整性。例如,如果在应用程序中引入不同的UI或web服务,则数据完整性保持不变。
我读到了我应该去的地方在我的BLL中执行验证以及UI。情况是这样的吗我应该处理错误/异常吗?
您的异常处理只能在Presentation层中完成。原因-假设你患有Presentatin/DAL/BLL。一旦实现了异常处理,到处都会导致性能问题。而另一方面,在Presentation层中实现异常处理将导致异常自动出现在调用函数的catch块中
只有在对数据库结果进行验证检查的情况下,才应在BLL中进行验证。