设计上的问题,大家来指点我下吧
最近在 考虑很多设计方面的问题,觉得头疼
通常 Model Entity 应该 对应数据库的表,然后 越靠近用户 数据在内存中的保存方式越业务化(就是倾向于显示和使用)
如果是三层,则 BLL操作DAL,处理Model的CRUD,包上事务,并组合结果给表示层。
这过程中会组合2个或者更多的实体Model数据 成新的类
新的类叫什么VO也好,叫什么DTO也好,总感觉规模一大,各种表示层的需求会造成不同表和字段组合的自定义类型满天飞。
管理起来一塌糊涂。使用匿名类吧,又不能在函数间传递,还要装成Object。
-------------------------------------------
最近看了DDD,也一头雾水,我可以在设计的时候不考虑持久方式,可是,我终究要持久化,对象和表之间的阻抗还是存在的。
很少有人谈到我DDD设计了以后,怎么理清领域对象的持久化怎么做。
还有一点就是,做Web项目,感觉业务层对象的状态没什么意义,因为业务层通常被页面创建,对象的生命周期最长也就一个
page,还要想尽办法在Url里将一些东西传来传去。
然后,现在的很多新东西,IQueryable<T>,由于类型的延迟决定,无法序列化,无法在Session中保存。
很多查询条件,现在还都是以aaa=bbb的方式成对保存,类型很弱。
业务类对象现在也就一个函数或者一个Page的命,除了connectionString 我都不知道里面可以放些什么成员。
似乎就是一个函数集了。如果是这样,很多函数还分不清属于哪个领域根呢,我取名字都各应,
索性业务层就做个函数库算了,都static起来,是不是这样更好呢?
如果是这样,还不如直接写aspx.cs里,这样访问控件,Session都方便,也不过就一个函数库。
感觉要OO设计,则O的状态管理很重要,但是Web项目里,状态被每次提交都拆烂了,
我可怜的用Session、Cookie和GetURL Parameter 维护状态,太惨了......
想点办法 救救我