asp.net 网站项目 如何实现三层架构?
再DALFactory与DBUtility我不是很了解,求大神详解。最好能给个上面几个层的逻辑关系图。好的我可以加分。 展开
理解ASP.NET中的三层结构——为什么要分三层?
我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。这说明将应用程序划分层次,会带来其执行速度上的一些损失。但从团队开发效率角度上来讲却可以感受到大不相同的效果。
需要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。
UI层就是与用户交互的界面、用户通过UI层向BLL层发出请求,BLL层再向DAL层发出请求,DAL链接数据库将所要的数据取出,再返回给业务逻辑层,BLL层对数据进行相应处理后呈现在界面上给用户。
实际应用中根据具体情况会再细分一些,于是便有了你说的多层的结构,层虽然多但没有脱离三层架构,只不过是细分了而已。
DALFactory一般是利用反射的原理获取具体的DBUtility实例。是用来应对数据库变化的。
三层架构的本质一句话:牺牲效率来换取灵活性!
就像我要生产一辆汽车,我自己只要定义一个整体结构就ok了,比如我制定4个轮子,一个方向盘……,至于轮子和方向盘我制定个应该具备的功能就ok(这就是接口的作用),比如摩擦系数什么的,放给其他厂商去做就行啦,至于他怎么去做我不关心,或者换一个厂商去做也无所谓,到时把达到我标准的轮子给我用就行,因为我只看到轮子应该具备的功能(我只调用接口里定义的方法,具体哪个类实现了这个接口我不关心)。