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

现在在.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下数据访问层+webform前台 技术大比拼相关推荐

  1. 企业级应用架构(三)三层架构之数据访问层的改进以及测试DOM的发布

    在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层能够支持一切数据访问技术,如Ado.n ...

  2. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)

    ASP.NET数据库访问系列教程 本教程深入探讨了基于ASP.NET 2.0技术的数据库访问方法和模式.这些介绍非常简明,并且提供了一步步的指导和大量的截屏. 该系列教程包括: 概述篇 基础报表 主/ ...

  3. Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 3 ----数据访问层

    在上一篇中,我们已经搭建起了整个解决方案的项目,并且建好了数据库,完成了实体类和Nhibernate映射文件.在本文中,将定义数据访问接口,并利用Nhibernate实现接口,利用Spring.net ...

  4. Scott Mitchell 的ASP.NET 2.0数据教程之一: 创建一个数据访问层

    原文 | 下载本教程中的编码例子 | 下载本教程的英文PDF版 导言 作为web开发人员,我们的生活围绕着数据操作.我们建立数据库来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据.本文是研 ...

  5. Spring Boot - 构建数据访问层

    文章目录 基础规范: JDBC 关系型数据库访问规范 JDBC 规范中的核心编程对象 DriverManager DataSource Connection Statement/PreparedSta ...

  6. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(中)

    ASP.NET数据库访问系列教程 本教程深入探讨了基于ASP.NET 2.0技术的数据库访问方法和模式.这些介绍非常简明,并且提供了一步步的指导和大量的截屏. 该系列教程包括: 概述篇 基础报表 主/ ...

  7. petshop4.0 详解之三(PetShop数据访问层之消息处理) [转]

    三.PetShop数据访问层之消息处理 在进行系统设计时,除了对安全.事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,尤其是一个B/S结构的软件系统,必须充分地考虑访问量.数据流量.服务器 ...

  8. 表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)

    三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦 ...

  9. [wayfarer]PetShop数据访问层之消息处理

    原文地址: http://www.cnblogs.com/wayfarer/archive/2006/09/06/496207.html <解剖PetShop>系列之三 三.PetShop ...

最新文章

  1. Color Blended Layers
  2. postgresql在线备份与恢复(三)
  3. 页面上水平飞舞的图片
  4. 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)
  5. jQuery 分类导航菜单条点击变色
  6. 我的编码规范(慢慢补充)
  7. CentOS7修改主机名称
  8. mdkstc系列器件支持包下载_Find X2系列 Android 11 Beta1 测试版发布
  9. jquery 事件对象属性小结
  10. 安卓动态调试七种武器之离别钩 – Hooking(下)
  11. Cocoapods应用(001-简介以及安装和卸载)
  12. mysql 恢复root权限_Linux MySQL root权限恢复[图文]
  13. layui select下拉框选项不显示
  14. 连接SQL SERVER的时候登录名如何清除
  15. X96 MAX变砖后usb烧录修复(by quqi99)
  16. 虚拟机安装中标麒麟服务器,如何在VMware Workstation中安装中标麒麟7.0
  17. 在群辉(NAS)中安装虚拟机套件(Virtual Machine Manager)
  18. 数值求解一维定态薛定谔方程
  19. a标签使用方法和跳转方式
  20. matlab每个循环命令行窗口输出,【matlab】命令行窗口一直不停的输出ans=1?

热门文章

  1. 12家无人驾驶公司新进展:驾照怕白考了!
  2. 《纲要》落地,东方通教你挖数据金矿
  3. 华为成功完成中国联通NFV三层解耦测试验证
  4. Firefox 用户加载的半数网页启用了 HTTPS
  5. Bzoj4822 [Cqoi2017]老C的任务
  6. linux网络服务之dns
  7. LAMP详解及源码编译安装过程
  8. Silverlight实例教程 - 理解Navigation导航框架Frame类
  9. ORA-39070:无法打开日志文件
  10. 在Spring项目中集成使用MongoDB