有几个关于三层结构的问题:(主要是对BLL层有些困惑) 1,在c/s的三层结构里,水晶报表的报表模板 放在那一层(BLL? DAL? UI?)?大家一般是怎么实现的? 2,日志记录放在那一层(BLL? DAL? UI? BLL && DAL? )?感觉DAL和BLL都要似的,就是困惑,不明就里。 3,在用户填写某些信息,<确定>之前需要校验用户的输入(防止用户不小心输入错误的数据),
比如:
工资不能输入中文,手机号码不能是中文,某些项是必选的
在加载部门管理模块的时候,根据用户的权限加载,这里的控制在那一层实现 4,如果需要给所有实体类写一个基类,或者接口,目的是为了以后可以修改实体类,我该怎么写这个基类?
因为实体类都是属性,不知道怎么抽象出一个基类来,怎么办?或者这根本就不合理? 5,什么是领域模型?网上说的 面向业务..开发是怎么回事,就是困惑,不明就里。 谢谢!
比如:
工资不能输入中文,手机号码不能是中文,某些项是必选的
在加载部门管理模块的时候,根据用户的权限加载,这里的控制在那一层实现 4,如果需要给所有实体类写一个基类,或者接口,目的是为了以后可以修改实体类,我该怎么写这个基类?
因为实体类都是属性,不知道怎么抽象出一个基类来,怎么办?或者这根本就不合理? 5,什么是领域模型?网上说的 面向业务..开发是怎么回事,就是困惑,不明就里。 谢谢!
比如:
工资不能输入中文,手机号码不能是中文,某些项是必选的
在加载部门管理模块的时候,根据用户的权限加载,这里的控制在那一层实现>>>>>>>>这些验证可以放在BLL 层 ,作为一个 独立的业务 ,提供接口 给UI调用 4,如果需要给所有实体类写一个基类,或者接口,目的是为了以后可以修改实体类,我该怎么写这个基类?
因为实体类都是属性,不知道怎么抽象出一个基类来,怎么办?或者这根本就不合理?>>>>>>>>>如果你不需要对这些 实体类进行操作,基类就没有必要,但是 总有一些 实体类 你对他的操作是 类似的或这相似的, 这些类需要 一个基类 统一处理 5,什么是领域模型?网上说的 面向业务..开发是怎么回事,就是困惑,不明就里。 >>>>>>>>>领域模型 应该是指 具体软件应用领域的 模型,比如 工作流 的处理模型、电力系统应用的数据处理模型、进销存 的处理逻辑,等等,这些应用 在UI和DAL 方面是差不多的,但是在 BLL 层就完全不一样,必须根据应用 来构建
2 日志记录通过组件实现,一般BLL和DAL层都需要
3 在WEB里通过页面JS判断,也可通过逻辑层实现判断
4 把公共属性和接口抽象出来,看看设计模式
5 参考
给所有实体类抽象出来一个 基类, 这个是对的。
可以创建一个IModel 的空接口,指定所有实体类都必须实现该接口。
这样子的话,Dal 中所有的数据库访问类 都可以共 一个数据访问接口: IDal
public interface IDal
{
void Insert(IModel model);
void Update(IModel model);
void Delete(string id);
IModel GetById(string id);
}实体类理论上不不属于任何层, 而是惯穿三层,做为传值媒介。
我的困惑主要是:
1:为什么我做的项目和petshop上的三层结构,基本上的BLL都像是透传
if(string.isnullorenpty(sParm))
return null;return Idal.Amethod(sParm);
感觉像透传(不知道这个词表达得清晰不),要不就像个switch开关,是不是因为我的项目是小项目的缘故?
感觉没什么复杂的业务要处理,基本上透传(我算是不见棺材不落泪...)2,给实体类设计一个接口,这个怎么设计?我上次在项目中用了抽象类,
里面没写任何东西,就一个空的,感觉很难交代?3,谢谢各位朋友!回帖都会有分的,我加分...呵呵
比如:
工资不能输入中文,手机号码不能是中文,某些项是必选的
在加载部门管理模块的时候,根据用户的权限加载,这里的控制在那一层实现 >>>>>>>>这些验证可以放在BLL 层 ,作为一个 独立的业务 ,提供接口 给UI调用 4,如果需要给所有实体类写一个基类,或者接口,目的是为了以后可以修改实体类,我该怎么写这个基类?
因为实体类都是属性,不知道怎么抽象出一个基类来,怎么办?或者这根本就不合理? >>>>>>>>>如果你不需要对这些 实体类进行操作,基类就没有必要,但是 总有一些 实体类 你对他的操作是 类似的或这相似的, 这些类需要 一个基类 统一处理 5,什么是领域模型?网上说的 面向业务..开发是怎么回事,就是困惑,不明就里。 >>>>>>>>>领域模型 应该是指 具体软件应用领域的 模型,比如 工作流 的处理模型、电力系统应用的数据处理模型、进销存 的处理逻辑,等等,这些应用 在UI和DAL 方面是差不多的,但是在 BLL 层就完全不一样,必须根据应用 来构建