DAL/BLL和客户端/服务器:客户端是否应该使用BLL或DAL对象进行演示?还是另一层(数据传输对象?)

StackOverflow https://stackoverflow.com/questions/3678824

我正在编写客户/服务器系统。该服务器具有DAL/BLL设计。客户端负责显示数据对象并提供对话框和向导,以允许用户更新这些对象(即添加/编辑用户)。

最初,我认为我只会使DAL对象具有通用数据提供商对象,以便客户端和服务器可以使用它们。例如,当服务器使用数据对象时,数据库是数据提供商。客户端使用数据对象时,服务器是数据提供商。

因此,一个对象在演示层上更改,例如“用户”:user-> setName(“ fred'),然后像user-> commit()一样提交它,该提交方法调用数据提供商的提交方法,然后对象编码对象并将其发送到服务器。然后,服务器用业务层对象“装饰”它,并从那里继续进行。

我目前将此作为原型工作,而在共享项目中定义了DAL对象,该项目都被客户端和服务器都使用。然后,服务器注入其数据提供商(使用数据库),并且客户端注入了使用服务器的数据提供商。

我想知道这似乎是一种合理的方法吗?我一直想知道我是否需要另一层,而不是让DAL对象直接暴露于客户端。也许是一个数据tranfer对象层,它将给我3层:数据访问对象,业务逻辑对象和数据传输对象。

谢谢。

有帮助吗?

解决方案

暴露“内在对象”之类的对象/返回购买dal并不是一个好主意。更好地使所有内部对象都隐藏在客户端中,并具有完整的对象集以用于客户服务器通信。将一个对象转换为另一个对象可能是一些额外的工作,但是如果服务器和客户端不会升级在一起,则可以更轻松地升级系统。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top