licongjie的博客

专心、专注、专业
随笔 - 26, 文章 - 1, 评论 - 207, 引用 - 1
数据加载中……

关于asp.net2.0中添加引用的问题

用.net 2.0有一段日子了,以前一直没有发现添加引用跟以前的1.0有什么不同,今天在突然发现一个问题。 比如在一个解决方案中有三个项目,分别是BLL(业务逻辑层),DAL(数据层),Web(WET应用程序)。现在信赖关系是,BLL层引用DAL层,而WEB应用引用BLL层。在以前的1.X版本中,我在Web应用中要引用BLL层,只要添加引用该项目即可,我在web应用程序里只能访问BLL层的方法,不能访问DAL层,而BLL层引用DAL也是如此,但在2.0我发现不一样了。我在WEB应用里只是添加了对BLL项目的引用 ,但DAL项目也会自动加进来,并且 我在WEB应用的时候能够直接访问。我试了多次都是如此,而且不用添加引用,只要把一个dll文件直接copy到bin文件夹下,就可以直接访问了。我不知道是不是哪里可以设置,还是2.0的机制就是这个样子了。我觉得这样的机制不好,本来我WEB应用只能访问业务层,但现在却连数据层也能直接访问了。
??????迷惑中

posted on 2006-08-09 10:26 李.net 阅读(563) 评论(2)  编辑 收藏 所属分类: C# & ASP.NET

评论

#1楼    回复  引用  查看    

机制
当你在WEB层引入BLL的话,会把BLL中引入的项目也自动填加到bin中,但只作为一个附加,其实这上很容易理解的,因为你部署的时候,按照你的想法,只把网页文件和BLL的类部署到服务器里了,那么BLL肯定找不到DAL库中的方法.
虽然DAL也被弄到WEB的bin里了,但理论上讲WEB层是不能和DAL通信的,我没试过,即使能通信的话,控制权不还在你的手里么,基于三层架构你完全可以不去访问那一层,呵呵.
2006-08-09 10:52 | aspnetx      

#2楼 [楼主]   回复  引用  查看    

@aspnetx
“按照你的想法,只把网页文件和BLL的类部署到服务器里了,那么BLL肯定找不到DAL库中的方法.”
可能我的表达有问题,部署的时候DAL层是肯定会在WEB应用的bin文件夹里的,这在1.X里也是一样,只不过在1.X里,虽然在BIN文件夹下,但WEB应用并不能调用它,而在2.0里只要你在bin文件下,都能够去访问。

不过你说的也对,控制权在开发者手下,你要不去访问哪一层都可以,呵呵。
2006-08-09 11:02 | 李.net