1.1三层之间的引用

整个.NET框架的项目创建完成之后,在开发之前,还需要建立各个项目之间的引用关系,以便在编写C#业务逻辑代码时调用相关项目的类库。

1.1.1 引用关系规则

.NET三层架构中的UI、BLL、DAL、Model之间的引用是有顺序的,不能随便的引用和调用。它们之间的引用规则如下:

  1. Model层被UI、BLL、DAL层引用和调用。
  2. UI层只能引用和调用BLL层和Model层。
  3. BLL层只能引用和调用DAL层和Model层。
  4. DAL层只能与Model交互,并且操作SQL Server数据库。

1.2. 添加引用关系

我们在Visual Studio开发工具中,创建了4个项目,这4个项目的名称空间都是不一样的,并且都存在不同的文件夹中。默认不能相互调用。它们之间如果要相互调用,这必须添加项目引用。

在没有添加项目引用的情况下,各层之间是独立的,隔离的。

1.2.1. UI引用BLL和Model

UI层是用户界面层,或称为表示层,是供用户访问的界面,因此,在经典.NET三层架构中创建的各层最终都是为UI层服务的。经过各层的逻辑处理之后,最终有用的数据就会流转到UI层并供用户查看和使用。

按照经典.NET三层架构之间的引用规则,UI层只能引用和调用BLL层和Model层。

1.2.2. BLL引用DAL和Model

BLL层是业务逻辑层,主要用于复杂的业务逻辑处理,然后将处理后的数据传递给UI层,UI层再呈现给用户。

而BLL层的数据是从DAL层过来的,DAL层是与SQL Server数据库接触的,因为我们最终的数据是永久存储在SQL Server数据库中的,所以通过DAL层就能够拿到原始数据,再在Model层的帮助下,以对象的形式将取出的原始数据传递给BLL层。

所以,BLL层需要引用DAL层和Model层。

1.2.3. DAL引用Model

在经典.NET三层架构中,DAL层是处理原始数据的一层,主要作用是从SQL Server数据库中获取原始数据。通过使用Model实体层,可以让数据以对象的形式获取。

最后,由于Model是实体层,只是一些由类封装的属性组成的,给三层之间传递数据使用的,所以不需要引用其它项目。

.NET三层架构各项目之间的引用关系及如何添加引用?的更多相关文章

  1. 使用VS创建三层架构的项目

    使用VS创建三层架构的项目 1.打开VS软件: 2.创建新项目: 3.创建新项目打开后选择SAP的选项点击创建{注:上面还有一个和这个相似的项目创建:看清楚在选择: 4.创建后改下名字,框架如果不是3 ...

  2. 手动创建Maven项目并建立两个项目之间的依赖关系

    用命令行快速建立maven项目 -> mvn:archetype:generate -> 直接回车或者自己输入你想生成的 -> groupId ->artifactId -&g ...

  3. 三层架构与MVC之间的区别

    文章转发自:http://www.admin10000.com/document/535.html 我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真 ...

  4. C# 好用的三层架构,项目直接上手用

    一.项目结构 注意:1.Common类中的引用添加:右键--添加引用--.NET--选择对应的引用 2.各层之间引用互相添加(这个就不必多说了,三层最基础部分)   3.在添加 Oracle 引用时候 ...

  5. [转]三层架构与MVC之间的区别

    我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. ...

  6. .NET Core添加项目之间的依赖关系

  7. Web项目的三层架构和MVC架构异同

    http://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑 ...

  8. MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  9. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

随机推荐

  1. day40 作业

    利用线程和进程实现tcp 服务端 from multiprocessing import Process from threading import Thread import socket def ...

  2. 可见格式化模型BFC与应用

    什么是BFC BFC指的是块级格式化上下文,简单的来说,BFC就是创建一个div盒子或者给已存在的盒子激活BFC,盒子内部的元素布局不影响盒子外部的元素.也就是所谓的相互隔绝,互不影响. BFC是一个 ...

  3. CSS(六)- 内容布局 - Flexbox

    Flexbox是CSS3提供的用于布局的一套新属性,是为了应对行内块.浮动和表格格式产生的问题而生的.其包含针对容器(弹性容器,flex container)和针对其直接子元素(弹性项,flex it ...

  4. 【RCTF-2015】bug

    信息: 题目来源: RCTF-2015 标签:PHP.SQL注入 解题过程 访问网址,提示需要登陆: 使用admin用户名进行注册,提示: 对登陆页面与注册页面进行Fuzz,没有发现注入点. 登陆后页 ...

  5. Django -MD5密码加密与登录

    直接贴代码 login_reg.py from django.shortcuts import render, redirect from web.forms.login_reg import Reg ...

  6. 数据分析02 /pandas基础

    数据分析02 /pandas基础 目录 数据分析02 /pandas基础 1. pandas简介 2. Series 3. DataFrame 4. 总结: 1. pandas简介 numpy能够帮助 ...

  7. C#根据反射动态创建ShowDoc接口文本信息

    我目前每天主要工作以开发api为主,这都离不开接口文档.如果远程对接的话前端总说Swagger不清晰,只能重新找一下新的接口文档.ShowDoc就是一个不错的选择,简洁.大方.灵活部署. 但是话说回来 ...

  8. 【高性能Mysql 】读书笔记(三)

    第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比 ...

  9. Cyber Security - Palo Alto Firewall Security Zones

    Firewall Security Zones Zones: The foundational aspect of every Firewall. Police network traffic Enf ...

  10. 耐心看,1个Dubbo漏洞,35道必问面试题,Dubbo没什么可神秘的

    Dubbo漏洞 无意中在网上看到了这样的一条新闻,说是我们360监测发现了Dubbo官方发布的危险漏洞通告,而且尴尬的是,世界上受影响最大的居然是中国,有图有真相 我感觉这也从侧面证明了一件事情,就是 ...