读书人

求解:ASP.NET中的平添引用到底是一个

发布时间: 2012-08-22 09:50:34 作者: rapoo

求解:ASP.NET中的添加引用到底是一个什么样的事情

在我们提高班,到现在为止机房收费系统是每个人的必做项目,而且不止一遍。但是每一遍有每一遍的意义。

第一遍,我们用的VB6.0,当看到这个系统是自己一行一行敲出来的时候,心里有种不敢相信的感觉,所以我们

建立了兴趣,建立了信心,只要坚持,我们一定能够成功。

第二遍,用VB.NET,这一次就说不好要重做几次了。我们学习了分层,所以在这要体验分层带来的好处,分层

带来的纠结,分层分了半年多了,却发现分的还是不好。

第三遍,是基于第二遍的,因为这次,要体验合作开发的快乐。

经过上次老师讲解,在讲完的当时,我发现,原来是这个样子啊。但是好奇心让我,不得不想着去做两个Demo

来验证一下。

首先,说一下这个系统的样子,系统采取经典三层架构,然后添加了外观模式来对功能进行模块的划分,还用了

抽象工厂加反射来实现数据库的更换方便。下图是架构图。

求解:ASP.NET中的平添引用到底是一个什么样的事情

此架构通过抽象工厂加反射使得工厂和DAL层没有依赖的关系,所以在生成的过程中,DAL层的DLL是不会生成

到其他层里面的bin的Debug下面的,也就使得如果不对DAL层进行那么一点点处理,那么是会报错的,为什么报错自

己研究。

我用了两种方法,一种是在UI层添加了对DAL层的引用(是万万不可取的,因为在架构图上,是没有任何层对DAL

层进行了依赖。第二种就是讲DAL的生成路径改成了UI下的bin的Debug。

对于第一种,因为违反了架构图,所以做法不可取,但是,是不是我在UI层添加了对DAL层的引用,那么编写好

的程序打包后DAL不是仅仅打包成一个.dll文件,而是将DAL.dll文件打包到UI中了,那么在更换了DAL.dll后,程序就

无法运行。按照上面的架构来说,就是说BLL中原来的登陆检查是只检查是否已登陆,那么我现在讲BLL中的登陆方

法体改成先检查是否存在此账号,然后再检查是否已经登陆,然后将生成好的dll替换原来的,那么程序依然只是还执

行只检查是否已登陆。

我后来做了个实验,下面我用一个比较简单的实验来澄清这个事情。

首先我们建一个经典的三层架构吧,下面是架构以及引用关系: 求解:ASP.NET中的平添引用到底是一个什么样的事情求解:ASP.NET中的平添引用到底是一个什么样的事情求解:ASP.NET中的平添引用到底是一个什么样的事情求解:ASP.NET中的平添引用到底是一个什么样的事情
每层中的代码如下:
UI

现在,三层是顺序依赖的,如果按照老师说的,那么如果我如果只使得DAL层的接口保持一致,而DAL层中的代码发生变化,那么程序将无法执行,可是事实是,我新建了一个解决方案,然后重新写了DAL,然后对DAL进行替换,下面是新DAL层中的代码

求解:ASP.NET中的平添引用到底是一个什么样的事情

然后生成,进行替换,运行结果如下:

求解:ASP.NET中的平添引用到底是一个什么样的事情

所以,通过此实验,发现如果在UI层对DAL层进行了添加引用。所以我感觉引用只是把dll复制到了自己目录下的bin/Debug下,之所以不能再UI层添加DAL层的引用,是因为违反了架构,所以需要做的是该生成路径。
但是引用到底还包含哪些呢?求大虾们赐教。

5楼tcl_6666前天 11:49
自己下去实践了,很大的优点
4楼liusong06053天前 14:52
嗯,结果是这样。n我觉得咱理解错了
3楼xhf555553天前 14:45
变量的思想
2楼lfmilaoshi3天前 07:58
还是没看懂。。。米老师
1楼zllaptx48693天前 00:06
内行看门道,外行看热闹~~~我暂时的来看热闹来了!!!!哈哈哈哈

读书人网 >ASP

热点推荐