有关抽象数据层处理的一段对话

Posted on 2008-09-14 11:55  南岗V哥  阅读(214)  评论(0编辑  收藏  举报

 

杨威威-北京 07:43:04
请大家一个问题,有没可能实体类所在层和数据库非常松耦合,实际情况是不改变现有的数据库结构进行重构,因为原来的数据库积累了很多的量,虽然不够合理,但短时间内不能改
T2噬菌体 07:44:53
自己做映射
T2噬菌体 07:45:06
麻烦了点,不过如果这样,也只能自己做映射了
杨威威-北京 07:45:55
EN
T2噬菌体 07:45:58
虚拟一个数据库层,符合现在的实体类要求,做一个映射,实现虚拟数据库层和真是数据库的转换
T2噬菌体 07:46:13
其它层之和虚拟数据库打交道
时间的灰烬 07:48:30
请大家一个问题,有没可能实体类所在层和数据库非常松耦合,实际情况是不改变现有的数据库结构进行重构,因为原来的数据库积累了很多的量,虽然不够合理,但短时间内不能改
时间的灰烬 07:48:46
我们现在有不少措施是专门针对这个问题的。
时间的灰烬 07:48:51
关键就是XSD。
杨威威-北京 07:48:58
比如。。。。‘
时间的灰烬 07:49:00
通过XSD的继承特性,
时间的灰烬 07:49:12
借助类似ORM的概念,做一个OXM。
时间的灰烬 07:49:24
Object - xsd mapping
Sinbad 07:49:39
 那像不麻烦嘛?
时间的灰烬 07:49:45
这样即便DB变了,可以很容易的定义新的XSD。
T2噬菌体 07:49:46
通过XML作为中间文件,完成映射?
时间的灰烬 07:50:04
不是XML文件。
T2噬菌体 07:50:13
那是?
时间的灰烬 07:50:22
是XSD(source) -> XSLT -> XSD(target)
Sinbad 07:50:24
那还不如用工厂啊
时间的灰烬 07:50:41
另一个方式就是这个。
时间的灰烬 07:50:58
在Data Access Patterns一书中有很多这方面介绍。
时间的灰烬 07:51:10
其中有一个叫DomainFactory专门作映射的。
时间的灰烬 07:51:20
尤其是Master - detail复杂关系应设的。
T2噬菌体 07:51:23
这样会不会有点过度?
时间的灰烬 07:51:35
看作的事情。
时间的灰烬 07:51:40
如果做的是行业,
时间的灰烬 07:51:46
比如:外贸、保险、银行
时间的灰烬 07:51:57
他们数据结构有行业标准,
时间的灰烬 07:52:04
这样值得。
T2噬菌体 07:52:05

T2噬菌体 07:52:10
原来如此
时间的灰烬 07:52:14
如果做具体临时项目,
时间的灰烬 07:52:17
过度。
时间的灰烬 07:52:54
我更喜欢前者。:)
时间的灰烬 07:53:04
因为项目经常要对外交换报文,
时间的灰烬 07:53:28
现在很多报文也是XML, 用XSD + XSL渲染比较容易。:)
T2噬菌体 07:53:50
恩,我还没接触过这些东西
T2噬菌体 07:53:58
又知道不少新东西
时间的灰烬 07:55:17
后者的资料:Data Access Patterns: Database Interactions in Object-Oriented
杨威威-北京 07:55:18
看来N多企业和饿现在所在公司遭遇相同的问题
时间的灰烬 07:55:59
对阿。
时间的灰烬 07:56:31
因为单位着30年只做外贸相关的,
杨威威-北京 07:56:41
一提出来,2方案出来了,逗
时间的灰烬 07:57:00
所以从VMS平台开始,用EDIFACT报文要求作要求。
时间的灰烬 07:57:11
这5、6年就是XSD为主做过渡。
杨威威-北京 07:57:32
人事相关的。。。。业务比较起来不算很复杂
时间的灰烬 07:57:51
前者一个.NET 3.0+的实现方案
时间的灰烬 07:57:53
http://msdn.microsoft.com/en-us/library/cc487895.aspx
时间的灰烬 07:58:09
其中专门有针对ASP.NET和WCF 两套方案的处理方法。
时间的灰烬 07:58:44
我同学参与部分开发,如果觉得比较差的地方,我告诉他,下个版本修改。
杨威威-北京 08:00:37
以上对话比饿一天忙活的事情都有用,谢过!
杨威威-北京 08:01:36
下班的时候还在和另一个同事商量怎么套用NBear/spring.net之类的框架
T2噬菌体 08:01:59
我建议.net下还是不要用orm了
T2噬菌体 08:02:15
感觉效率太差,而且也不是很方便
杨威威-北京 08:04:00
想先把基础建好,实体类识别建立,use case.....
杨威威-北京 08:10:04
你用的NHibernate?
T2噬菌体 08:10:16
我?
杨威威-北京 08:10:22
EN
T2噬菌体 08:10:31
NBear用得多一些
T2噬菌体 08:10:42
讨厌NH那一套配置
杨威威-北京 08:11:03
感觉NBear不够成熟
T2噬菌体 08:11:14
恩,使用方式也有点奇怪
T2噬菌体 08:11:24
得写一个设计工程
T2噬菌体 08:11:55
如果变了一点,就得重新写设计工程,重新编译,重新生成实体类……我的天哪
T2噬菌体 08:12:31
反正我现在是返璞归真了,.NET平台下一律都是手工写DA
T2噬菌体 08:12:40
不用框架了
杨威威-北京 08:12:50
听说IBatis.Net不错
T2噬菌体 08:13:14
没用过咧
T2噬菌体 08:13:48
睡觉去了~~~

 

 

 

 

时间的灰烬提出的XSD方式还不理解,先看看他推荐的那本Data Access Patterns先