DAL是指Data Access Layer。DALFactory是用于创建数据訪问对象的工厂。本质上是採用了抽象工厂的设计模式。目的是支持多种数据訪问层,比方sql server和oracle两种实现。同一时候又利用了.net的反射机制,通过配置文件就可以确定採用哪种数据訪问实现;IDAL是数据訪问层接口,这样做的优点是使业务逻辑层调用数据訪问层的接口就可以实现数据库的增删改等操作,业务逻辑层与数据訪问层是一种抽象依赖的关系,而非详细依赖。我认为明确这些,首先须要有编程的经验,要明确接口、抽象类等的作用,再研究设计模式和软件架构。能够上博客园、csdn什么的多看看这方面的资料呗。

  1、WEB=表示层





  2、BLL=业务逻辑层





  3、IDAL=数据訪问层接口定义





  4、Model=业务实体





  5、DALFactory=数据层的抽象工厂(创建反射)





  6、SQLServerDAL=SQLServer数据訪问层 / OracleDAL=Oracle数据訪问层





  DBUtility 数据库訪问组件基础类





  二、项目引用关系





  1、Web 引用 BLL。





  2、BLL 引用 IDAL,Model,使用DALFactory创建实例。

  3、IDAL 引用 Model。





  4、Model 无引用。





  5、DALFactory 引用IDAL。通过读取web.config里设置的程序集,载入类的实例,返回给BLL使用。





  6、SQLServerDAL 引用 Model和IDAL,被DALFactory载入的程序集,实现接口里的方法。





  三、实现步骤





  1、创建Model,实现业务实体。





  2、创建IDAL。实现接口。





  3、创建SQLServerDAL。实现接口里的方法。

  4、添加web.config里的配置信息,为SQLServerDAL的程序集。





  5、创建DALFactory。返回程序集的指定类的实例。





  6、创建BLL。调用DALFactory。得到程序集指定类的实例,完毕数据操作方法。





  7、创建WEB,调用BLL里的数据操作方法。





  注意:





  1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致。





  2、DALFactory里仅仅须要一个DataAccess类,能够完毕创建全部的程序集实例。





  3、项目创建后,注意改动各项目的默认命名空间和程序集名称。

  4、注意改动解决方式里的项目依赖。

  5、注意在解决方式里添加各项目引用。

DALFactory有什么作用的更多相关文章

  1. if __name__== "__main__" 的意思(作用)python代码复用

    if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog  http://www.dabu.info/if-__-name__ ...

  2. (转载)linux下各个文件夹的作用

    linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...

  3. github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  4. web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...

  5. web.xml中load-on-startup的作用

    如下一段配置,熟悉DWR的再熟悉不过了:<servlet>   <servlet-name>dwr-invoker</servlet-name>   <ser ...

  6. SQLSERVER中NULL位图的作用

    SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...

  7. 电容与EMC-电容不同功能时对整板EMC的作用

    一般我们的pcb板的器件有很多种类,但是值得特别关注的,很多人都会说是BGA.接口.IC.晶振之类,因为这些都是layout功能模块以及设计难点.然而数量上占绝对优势的器件却是阻容器件,之前围殴阻抗时 ...

  8. FTP的搭建与虚拟目录作用<之简单讲解>

    操作系统:win7 VS2010编写WebService与在IIS的发布<之简单讲解>中我已经说了IIS安装与使用,不明白的可以跳过去看. 1.添加FTP站点 2. 3. 4. 5. zq ...

  9. 火狐浏览器中event不起作用解决办法--记录(一)

    今天遇到了这个问题.IE,谷歌下都没问题,但在FF下却不起作用,很郁闷查了半天,看别人博文写了老长,结果试了要么起作用,但太麻烦,要么不起作用,说了那么多跟没说一样. 其实只要这一句代码就行:e=ar ...

随机推荐

  1. Windows系统开机硬盘自检问题解决

    http://blog.sina.com.cn/s/blog_49063a0b0100tf7y.html硬盘开机自检通常都是由于计算机使用者的不合理使用电脑造成的,比如非常正关机,或者遭到病毒侵袭,抑 ...

  2. 记一次400错误引发的血案(URL中特殊符号的转义/400 bad request错误)

    django+nginx+uwsgi部署的站点访问某个URL时发生了400 bad request的错误,而使用django自带的开发版的web server时没有遇到此问题.初步判断是nginx或u ...

  3. 转 python selenium 常见问题列表

    怎么用ChromeDriver ? 从这里下载最新的driver版本并解压   # 好吧,这个命令是给linux or osx用户准备的 # windows用户直接手点吧 by 乙醇 unzip ch ...

  4. python添加tab键自动补全功能

    默认python是没有tab键补全功能的: >>> import tab Traceback (most recent call last): File "<stdi ...

  5. GL_总账会计科目追寻SLA及子模组

    相信做总账的学友们,一般很多时间都会花费在查询日记账的来源,因为R12多了一个SLA模组,又有些增加了追溯日记账的难度,个人整理了一下 11i过账方式: 子模组-> 总账 (Post Journ ...

  6. Linux时间子系统(三) 用户空间接口函数

    一.前言 从应用程序的角度看,内核需要提供的和时间相关的服务有三种: 1.和系统时间相关的服务.例如,在向数据库写入一条记录的时候,需要记录操作时间(何年何月何日何时). 2.让进程睡眠一段时间 3. ...

  7. Oschina 安卓client源代码学习之中的一个

    今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在非常多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序. 之前一直非常好奇这是怎么实现的 ...

  8. iOS网络框架 AFNetworking

    -(void)GetActivationUser{ NSString *url = @"http://app.xxxx.com/music/search?key=%E9%AC%BC%E5%9 ...

  9. 转 MySQL中的行级锁,表级锁,页级锁

      对mysql乐观锁.悲观锁.共享锁.排它锁.行锁.表锁概念的理解 转载. https://blog.csdn.net/puhaiyang/article/details/72284702 实验环境 ...

  10. Maven pom.xml 报 Missing artifact jdk.tools:jdk.tools:jar:1.7

    linux中用eclipse 新建maven project,pom.xml中报Missing artifact jdk.tools:jdk.tools:jar:1.7 解决方法: 在pom.xml中 ...