ORM,SqlDataSource,ADO.NET你需要什么?

ORM,SqlDataSource,ADO.NET你需要什么?

 

今天CSDN主页上看到一个社区话题“有了SqlDataSource我们还需要ORM吗”,我想答案是yes,我们确实还是需要ORM.

数据库访问技术经过了很多年的发展取得了很多成就,在这个过程中也诞生了很多数据库访问技术,光微软一家就有Sql Server API, ADO,ADO.NET,LINQ等等等等,在这过程中又发展出了很多方便数据库操作的控件比如.NET中的SqlDataSource,还有数不清的Activex数据表格控件等等,但这些操作手段基本上都要求大家要具备一个能力就是必须会写SQL语句。

曾几何时ORM红遍了大江南北, Hibernate, Castle, Gentle搞得后来者不知所措,需要的项目用ORM不需要的也用ORM,ORM成为了一种潮流,但是我们的项目真的需要ORM吗?对于小型系统可能只有10几张表,没有大量并发,可以忍受几率很低的数据出错,从这个层面来说用什么技术都是可行的,对开发者来说最熟悉的就是最好的。

回到开头的那个话题SqlDataSource可以很方便的和很多数据控件绑定,很简单的实现增删改功能以及数据查询功能,但是对于一个复杂的系统使用SqlDataSource将无法让我们剥离UI和业务逻辑,这样会给代码复用以及后期的调试,维护增加很多麻烦,并且SqlDataSource不能实现很多复杂的操作。ORM的好处是,他把数据表和对象直接map,本生数据库操作的代码已经和UI实现分离,非常容易复用,另外给我们保留了很大的灵活性。

那么ORM的目标为了什么呢,当然是为了把我们从复杂的数据库访问接口和SQL语句中解放出来让开发者把主要精力放到业务逻辑上来,加快系统开发的速度。 ORM很好但是很多时候使用它也会给我们带来无穷无尽的烦恼,比如在关键系统中使用一旦发现框架本身有问题非常难以修改,有特殊的数据库访问有特殊需求而框架当前没有提供这样的功能,由于ORM对于数据库操作的封装对于数据库操作的性能下降等等。在这种时候如果你一定要ORM那么可能需要自己动手写一套了。

其实每一种技术都有它适用的场合每一种技术都有它存在的理由,这个是我的一点愚见。

你可能感兴趣的:(sql,Hibernate,框架,数据库,server,orm,LINQ)