在三层c#asp.net数据库应用程序中正确使用OOP

时间:2018-08-12 18:21:27

标签: c# asp.net oop three-tier

我正在启动C#,想知道下面的方法是否有问题:

enter image description here

简而言之,在各层中将存在类似于以下内容的实例:

UI

var userBll = _userBll.SaveUser(dtoUser); 

BLL

// Validations and other business rules
return _userDal.SaveUser (dtoUser); // Request DAL

DAL

// Return the saved user to the database
return userDb;

这种方法是否存在问题,其中UserBll类将包含“ SaveUser”方法?让User类负责调用Save方法是否正确?像这样:

var user = new User();
user.SaveUser()

在这种情况下,User对象类和UserDTO数据传输类之间是否会有冗余?

很抱歉,这听起来像是一个愚蠢的问题,但这确实使我感到困惑。

1 个答案:

答案 0 :(得分:0)

DAL仅仅是对基础数据提供者的抽象。验证成功后,BLL不知道发生了什么,只是知道它想保存用户。

因此,我相信包含_userDal.SaveUser (dtoUser)的方法更适合这种情况。但是在我自己的应用程序中,我通常会为通用/共享项目使用另一个程序集。类似于您的dtoUser。我不喜欢3层应用程序中UI和DAL之间的直接依赖关系。