答haoyuhai问

我初期接触CSLA时也有象你一样的感觉,不过深入下去研究,发觉优点还是大于缺点的,毕竟到现在为止,还没有遇上十全十美的框架。

1。csla将业务逻辑层和UI层紧藕合在一起,在设计业务类时,必须要考虑界面的情形,这种依赖关系应该是有问题的。

CSLA的业务类,我用下来没发觉和UI有太多的纠葛,他是通过IBindingList提供UI层的数据绑定。不知道你说的依赖关系,是不是指业务类中对数据的有效性、合法性等等做了校验的动作?如果是这个的话,我认为这是合理的,因为这些也是业务逻辑部分。

2。数据绑定是很强大,但是数据绑定应该只限定于UI层,不应该在设计业务类时考虑这些,而且数据绑定不够灵活,应该提供非数据绑定的方法。

“数据绑定”确实将UI和业务类捆绑的蛮死的,不过带来的好处是,UI的开发量很少,比如:界面数据感知控件排布好后:

在show事件里usersBindingSource.DataSource = Users.Fetch();即可填充数据;

CancelButton事件里:_users.CancelEdit();即可恢复数据;

SaveButton事件里:_users.Save();即可提交数据;

在界面组件中的代码量很少,基本都是些用户体验方面的代码,比如“焦点如何随着操作进程进行自动跳转”等等之类的,而真正的业务逻辑都是在业务类中实现了。从这点来看,CSLA的业务类实现了非常高的内聚。

对于耦合,我的理解有两方面需要考虑的,第一是横向的,也就是业务组件之间,是否实现了松耦合,这点应该是业务分析阶段重点考虑的问题;第二是纵向的,也就是逻辑分层和物理分层,这些是框架需要考虑的,如何提供好的模式。我认为CSLA这点做得不错。

逻辑分层和物理分层不是一回事,也不是一一对应的。也就是说“UI-Business-DB”和“客户端-应用服务端-数据库”不是一一对应的关系。我认为Business恰恰根据负载均衡的需要分布在了“客户端-应用服务-数据库”三处地方:

在客户端,Business叫“工作间层”基本处理数据校验等规则;

在应用服务端

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值