.NET下数据访问层+webform前台 技术大比拼

转载 2013年05月13日 09:11:19

转一篇过去的文章,不过还是有些借鉴意义:

现在在.NET下做数据访问层的技术实在是太多了,选择多了就是没有选择。感觉.net对比java还太年轻需要时间来沉淀。java虽然框架多,但优秀的都沉淀下来,想都不用想都知道struts+spring+hibernate ,.net呢?单单一个数据访问就让够让人迷茫了。在ADO.NET2.0方面:SqlDataSource、强数据集(即TableAdapter方式)、手写实体类的方式(像PetShop中的方式,即像CodeSmith这样的代码生成工具生成的代码),Linq框架方面又有在Linq包装下的Linq to Sql、Linq to DataSet、Linq to Entities等方式,在ORM领域,除了Linq to Sq这个轻量级的l外,还有重量级的实体框架(Entity Framework)和在开源方面的NHibernate等。

 

   不做三层,要求不高的小系统不用说首选SqlDataSource这种方式,当然这种没技术海量,不值钱。很多学java认为学c#简单就是因为有这种方式,零代码编程啊,很诱人吧。可是外面做项目的哪有这样用的,也就做毕业设计还不错,一周时间保证搞定。当然不是贬低这种技术,可以说这是我最佩服的微软技术,开发效率是怎么一个夸张了得。不跑题了,用强数据级做轻量级数据访问的三层架构应该是很方便做大型网站好像都用手写实体类方式,见到的好多网站程序都是这样,像Discuz!NT、动易之类的。虽然Linq很强大,可以万般皆Linq,但是我不明白的是真的需要吗?感觉Linq就像是一个大的数据访问平台似的,想要精通Linq的代价也不是一般高的吧,虽然这不是必要的。当然Linq to Sql作为轻量级的ORM还是不错的,虽然要被Entity Framework所取代。年前Linq to Sql之死炒得挺热闹的,导致的结果是,在前景不明确的情况下博客园里学习Entity Framework的热情明显没有当年Linq to Sql那样高涨了。谁叫大家都认为Linq to Sql死了,而Entity Framework才刚诞生,质疑其成熟性。在.NET下的ORM技术应用最广泛最成熟的恐怕要数NHibernate了,这个脱胎于Java领域Hibernate的优秀开源框架。在微软的地盘上能活多久还是个未知数,虽然现在微软很支持开源,像mvc框架采用开源模式,ajax、Silverlight控件包也采用开源模式。但别忘了,ORM微软可是有自家的产品,还一轻一重,居然有两个。可以想像很能容下NHibernate多久呢?

 

   想想最悲剧的要数讲数据访问方面的书,在市面上只有ADO.NET。讲Linq to Sql和Entity Framework的只见到台湾人写的一本。NHibernate根本没见到。

 

   现在知道SqlDataSource、强数据集、手写实体类的方式都有各自的用途。Linq to Sql前途不是很大,可以持观望态度。Linq真的值得煞费苦心去学吗?Entity Framework和NHibernate,现在该学哪个?虽然Entity Framework前途很光明,但现在用NHibernate应该是很多吧,现在开始用Entity Framework的多吗?还有什么时候选择用强数据集,什么时候用ORM好些,或者说现在有了ORM,强数据集就过时了不建议用了。

 

  一个数据访问层就让人崩溃了。在表示层除了现在用的webForm外还有新生的mvc虎视眈眈,再时髦点还有Silverlight等着呢。java只要学好struts就行了ajax呢?本来只用流行的JQuery、Ext就行了,可是微软自家的ASP.NET ajax框架你敢不把优先级放在前面吗?虽然他们的侧重点不同,但恰恰是因为不同才都要学。幸好用Ext js的不是太多,可以不用管了。java方面呢?要不用jQuery,要不用Ext js(jQuery在任何平台都是最流行的,像php、Ruby等,EXt js就不知道怎么搞的在java平台超级流行,在其它平台就一般了,看来程序员的羊群效应也是很严重啊!)。

 

   这还没有说桌面开发方面,还有winForm和WPF也是难解难分。XNA游戏开发、Windows Mobil手机开发、Windows CE嵌入式开发有点远了,就不说了。

 

   真想转学java去,年前就有这样的想法。

 

   struts+spring+hibernate ,再加个JQuery或者Ext Js,太爽了,简单就好,不用像现在这样头大了。

.NET开发中的事务处理大比拼 之 ADO.NET级别的事务

现在我们对事务的概念和原理都有所了解了,并且作为已经有一些基础的C#开发者,我们已经熟知编写数据库交互程序的一些要点,即:(1)使用SqlConnection类的对象的Open()方法建立与数据库服务...
  • sven_xu
  • sven_xu
  • 2015年06月02日 09:13
  • 1160

论文《网格安全技术大比拼》

  • 2008年03月22日 11:19
  • 124KB
  • 下载

mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Co...

基于.NET平台的分层架构实战(七-外一篇)——对数据访问层第一种实现(Access+SQL)的重构

昨天的文章 基于.NET平台的分层架构实战(七)——数据访问层的第一种实现:Access+SQL发布后,很多朋友对我的程序提出了意见和建议,在这里先谢谢你们!!!尤其是 金色海洋(jyk),对我的程序...

基于.NET平台的分层架构实战(九)——数据访问层的第三种实现:基于NBear框架的ORM实现

前面的文章讨论了使用SQL语句和存储过程两种数据访问层的实现方式,这一篇里,将讨论使用ORM方式实现数据访问层的方法。      对象-关系映射(Object/Relation Mapping,简称O...

.Net企业级应用架构设计之数据访问层

综述 数据访问层的设计很大程度上取决于项目干系人需求的影响。例如,数据访问层应该持久化对象模型还是简单的的值的集合?数据访问层应该支持一种数据库还是多种数据库?下面仔细分析数据访问层的常见功能需求。 ...

.net中的数据访问层的封装

当年.net项目中自己封装的数据访问层,个人感觉使用非常方便

基于.NET平台的分层架构实战(八)——数据访问层的第二种实现:SQLServer+存储过程

  在上一篇中,讨论了使用SQL构建数据访问层的方法,并且针对的是Access数据库。而这一篇中,将要创建一个针对SQLServer数据库的数据访问层,并且配合存储过程实现。  曾经有朋友问我使用SQ...
  • wnety
  • wnety
  • 2011年07月01日 10:06
  • 299

基于.NET平台的分层架构实战(九)——数据访问层的第三种实现:基于NBear框架的ORM实现

  前面的文章讨论了使用SQL语句和存储过程两种数据访问层的实现方式,这一篇里,将讨论使用ORM方式实现数据访问层的方法。  对象-关系映射(Object/Relation Mapping,简称ORM...
  • wnety
  • wnety
  • 2011年07月01日 10:08
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET下数据访问层+webform前台 技术大比拼
举报原因:
原因补充:

(最多只允许输入30个字)