这两天看到坛子里面有朋友发了篇《苦逼的三层代码》,回帖的人很多,而且还上了推荐,贴主在文章中说到:采用传统的三层架构写代码,每个数据表都要定义一个实体对象,编写后台的时候,Web层需要针对页面的用户输入逐个手动编写赋值到实体对象的各个属性,然后DAL层还要用SqlHelper 进行各个存储过程对应参数的实体赋值,我的天呀,写几个表还好,多个表呢,写的后台都没力气,典型的苦逼代码工没营养,各位有啥好的处理方法或开发方式。。  有人说用三层代码生成器,有人说用ORM,也有人说用反射,但我觉得,这些都没有脱离“三层架构”的至酷,为什么一定要用三层?为什么三层就一定需要使用实体类?为什么要手工写那么多对象属性的取值、赋值代码?  我觉得,要根据情况具体问题具体分析,不能说在三层架构的项目里面就不允许使用一层,或者说四层代码,反过来也是,比如我们可以在项目里面有业务逻辑复杂的地方使用三层来开发,没有业务逻辑的地方,比如简单的数据录入、修改、查询的地方,直接一层,在ASPX的后台方法里面调用某个组件来完成数据的CRUD。我在项目实践中就是这样做的,我为WebForm、WinForm项目开发了一套“数据控件”,只需要在控件的设计属性里面配置下控件映射到数据表或者实体类的字段或者属性名称即可,采用数据控件的机制,最后实现了一行对代码解决这些问题,详细内容大家可以参考我的文章《不使用反射,“一行代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD》,这里给大家贴一张控件设置的效果图,相信明眼人一眼就看出来怎么用了。
winform数据库weborm

解决方案 »

  1.   


    CSDN 怎么没法显示图片?
    我上传一张再试试。
      

  2.   

    因为那些苦逼三层只有简单的增删查改,千辛万苦弄这么对象出来,又多余,还不如用excel方便。
      

  3.   

    根据本文说的内容,我做了一个简单的例子,大家可以去开源项目网站下载:
        项目网址: http://pwmis.codeplex.com 到下载页,选择“ PDF.Net_V4.6 WinForm 数据表单实例 ”这个下载链接即可。另外还有一个散分贴,200分,大家去接分吧。
    http://bbs.csdn.net/topics/390382179
      

  4.   

    楼主的PDF.NET框架,对于我这种SQL语法都不怎么熟悉的人快速开发数据库应用非常有帮助!
    OQL语言直接“点”出来“Select”“Where”“Orderby”“InnerJoin”程序报错再也不会是SQL语句的错了!!
      

  5.   

    一句话直接查询出List<T>,再也不是那固定的DataSet了!!
      

  6.   

    医生啊.干什么不做个自动生成的.CRUD直接生成了不就简单了.
      

  7.   

    框架已经提供了简单的CRUD功能了,你直接调用就好了。
      

  8.   

    PDF.NET 有不少自己的想法和优秀的地方...支持国产哈...
      

  9.   

    一直用codesmith的路过,现在做asp.net界面及基本的数据交互都自动生成了。
      

  10.   

    ORM查询语言(OQL)简介--实例篇》有框架的ORM使用详细介绍,这样使用ORM,三层的DAL都可以不要了。
      

  11.   


    WCF?可 PDF.NET是数据框架啊!