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. 简单的MVC框架

    效果图: 源码下载:https://github.com/doyoulaikeme/DotNetSample/tree/master/DotNetSample4/easyMVCFramework

  2. Linux 下载工具推荐: Motrix && qbittorrent

    Linux下载介绍 Linux下其实下载工具还是蛮多的, 命令行的wget,curl,aria2,甚至于apt 但是个人日常使用下还是有图形化界面比较方便易用.大多数教程里推荐的Uget,可能是我也不 ...

  3. java 面向对象(三):类结构 属性

    类的设计中,两个重要结构之一:属性 对比:属性 vs 局部变量 1.相同点: * 1.1 定义变量的格式:数据类型 变量名 = 变量值 * 1.2 先声明,后使用 * 1.3 变量都其对应的作用域 2 ...

  4. Python之 爬虫(二十三)Scrapy分布式部署

    按照上一篇文章中我们将代码放到远程主机是通过拷贝或者git的方式,但是如果考虑到我们又多台远程主机的情况,这种方式就比较麻烦,那有没有好用的方法呢?这里其实可以通过scrapyd,下面是这个scrap ...

  5. 安装完Linux需要做的关于安全的事

    故事是这样子的 最近主机受到攻击,原因可能是redis集群没有设置密码(因为快过期了,不想搞得太复杂就没设),然后被人家搞事情了,就被人一把set了些执行脚本,形如curl -fsSL http:// ...

  6. OSCP Learning Notes - Enumeration(4)

    DNS Enumeration 1. Host Tool host is a simple utility for performing DNS lookups. It is normally use ...

  7. Azure 提供负载均衡(一)Azure Traffic Manager 为我们的Web项目提供负载均衡

    一,引言 上一篇讲到我们将自己的Net Core Web 项目部署到 Azure 的 Web App 的一项 pass 服务,假如随着项目的日益增长的访问量,之前部署到单节点的应用可能无法保证其稳定性 ...

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

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

  9. Presto性能调优的五大技巧

    概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询. Presto的架构分为: Coodinator:解析SQL语句,生成 ...

  10. three.js 对象绕任意轴旋转--模拟门转动

    说了几篇的数学方法,这篇放松一下,郭先生说说绕任意轴转动.说一说其中一种方法,也是比较容易理解的一种,它的原理就是将子对象放到一个盒子中,然后改变子对象相对于父对象的位置(因为子对象的原点默认还是在盒 ...