ADO.NET完成的hibernate没有完成的事情

最近在做.NET平台上C#+SPRING.NET+Nhibernate的开发,之前一直在做.NET+SQL SERVER2005的开发,这里对比两者的差异,发表一些观点
不管我们用的是hibernate还是nhibernate,在从数据库返回了数据之后,我们总是需要自己去构建模型层。不可否认,自己构建模型层的结构,确实更大程度上的把开发的主动权控制在了我们程序员的手中,但是由此带来的不便也是显而易见的。如果我们使用ADO.NET,那么我们在处理返回的dataset的时候,其已经对里面的datatable构建好了。省去了我们对模型层字段的设置和配置,我们只需要知道数据库返回的是什么字段,在做数据绑定的时候,对应这个字段就行了。对字段的类型所关心的很少,我们有更多的时间来关心业务上的问题。
但是,当我们用Nhibernate的时候,模型层需要我们自己去构建domain和dto,这个本身就花费了我们大部分的时间。而且我从网上查了一些资料,其实nhibernate的实际效率并不比dataset要高哪里去。如果说仅仅是内存上的多占用的那部分,我相信这点内存我们还是支付的起的。但是,hibernate思维方式带给我们的麻烦事情还远没有结束。每当存储过程改变的时候,也就是从数据库返回的数据集的字段有所改变的时候,我们这个时候需要做的不仅仅是需要改变页面表现层的字段名,而且还要动domain或是dto的字段设置,尤其是字段类型。这些都是相当繁琐,而且增加了程序员犯错的机会,降低了开发的速度。
不可否认,MS把这些东西都给我们封装的太完美了,而完美如果非要说“挣脱MS的枷锁,做自己开发的主人”这种话,什么都自己去做的话,也是会付出很大的代价的。别人有好的东西,我们还是应该承认。
抛砖引玉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值