剖析ASP.NET三层构架

2023-12-09 00:58
文章标签 剖析 asp net 构架 三层

本文主要是介绍剖析ASP.NET三层构架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 实现步骤为:(4-3-6-5-2-1)

 

ID

 

 

项目

 

 

描述

 

 

用途

 

 

项目引用关系

 

 

实例所需文件

 

 

相关方法

 

 

1

 

 

Web

 

 

表现层

 

 

Web页和控件

 

 

引用BLL

 

 

WebUI.aspx

WebUI.aspx.cs

 

 

 

GetContent()

 

 

2

 

 

BLL

 

 

业务逻辑层

 

 

业务逻辑组件

 

 

引用 IDAL,Model,使用DALFactory创建实例

 

 

Content.cs

 

 

ContentInfo GetContentInfo(int id)

 

 

3

 

 

IDAL

 

 

数据访问层接口定义

 

 

每个DAL实现都要实现的一组接口

 

 

引用 Model

 

 

IContent.cs

 

 

ContentInfo GetContentInfo(int id)

 

 

4

 

 

Model

 

 

业务实体

 

 

传递各种数据的容器

 

 

无引用

 

 

ContentInfo.cs

 

 

 

 

 

5

 

 

DALFactory

 

 

数据层的抽象工厂

 

 

创建反射,用来确定加载哪一个数据库访问程序集的类

 

 

引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。

 

 

Content.cs

 

 

IDAL.Icontent create()

 

 

6

 

 

SQLServerDAL

 

 

SQLServer数据访问层

 

 

Microsoft SQL Server特定的Pet Shop DAL实现,使用了IDAL接口

 

 

引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。

 

 

SqlHelper.cs

 

 

 

Content.cs

 

 

SqlDataReader ExecuteReader()

PrepareCommand()

ContentInfo GetContentInfo(int id)

 

 

OracleDAL

 

 

Oracle数据访问层

 

 

7

 

 

DBUtility

 

 

数据库访问组件基础类

 

 

GetSqlServerConnectionString得到数据库连接字符串,也可省去该项目,在SQLServerDAL.SqlHelper中用static readonly string SqlConnectionString代替。

 

 

无引用

 

 

 

 

 

 

 

bll :business Logic laywer 业务逻辑层
dal: data access laywer 数据访问层
model:实体层
DBUtility: 数据库应用层
common:常用处理组件层

DBUtility: 各种实用数据库操作
bll :处理实际的业务发生时候的逻辑。
dal: 数据访问层
common :没架构过
model:业务处理的对象。数据库的一个缓冲区

 

petshop4.0设计说明

一、项目名称及描述

1、WEB=表示层

2、BLL=业务逻辑层

3、IDAL=数据访问层接口定义

4、Model=业务实体

5、DALFactory=数据层的抽象工厂(创建反射)

6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层

DBUtility 数据库访问组件基础类

二、项目引用关系

1、Web 引用 BLL。

2、BLL 引用 IDAL,Model,使用DALFactory创建实例。

3、IDAL 引用 Model。

4、Model 无引用。

5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。

6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。

三、实现步骤

1、创建Model,实现业务实体。

2、创建IDAL,实现接口。

3、创建SQLServerDAL,实现接口里的方法。

4、增加web.config里的配置信息,为SQLServerDAL的程序集。

5、创建DALFactory,返回程序集的指定类的实例。

6、创建BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。

7、创建WEB,调用BLL里的数据操作方法。

 

各层间的访问过程:

1、传入值,将值进行类型转换(为整型)。

2、创建BLL层的content.cs对象c,通过对象c访问BLL层的方法GetContentInfo(ID)调用BLL层。

3、BLL层方法GetContentInfo(ID)中取得数据访问层SQLServerDAL的实例,实例化IDAL层的接口对象dal,这个对象是由工厂层DALFactory创建的,然后返回IDAL层传入值所查找的内容的方法dal.GetContentInfo(id)。

4、数据工厂通过web.config配置文件中给定的webdal字串访问SQLServerDAL层,返回一个完整的调用SQLServerDAL层的路径给 BLL层。

5、到此要调用SQLServerDAL层,SQLServerDAL层完成赋值Model层的对象值为空,给定一个参数,调用SQLServerDAL层的SqlHelper的ExecuteReader方法,读出每个字段的数据赋值给以定义为空的Model层的对象。

6、SqlHelper执行sql命令,返回一个指定连接的数据库记录集,在这里需要引用参数类型,提供为打开连接命令执行做好准备PrepareCommand。

7、返回Model层把查询得到的一行记录值赋值给SQLServerDAL层的引入的Model层的对象ci,然后把这个对象返回给BLL。

8、回到Web层的BLL层的方法调用,把得到的对象值赋值给Lable标签,在前台显示给界面

 

注意

1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致。

2、DALFactory里只需要一个DataAccess类,可以完成创建所有的程序集实例。

3、项目创建后,注意修改各项目的默认命名空间和程序集名称。

4、注意修改解决方案里的项目依赖。

5、注意在解决方案里增加各项目引用。

这篇关于剖析ASP.NET三层构架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471921

相关文章

Windows中,.net framework 3.5安装

安装.net framework,目前已知2种方法,如下: 一、在MSDN下载对应的安装包,安装,这种可能无法安装成功,概率很大,不成功使用第二种方法,基本上没问题。 二、win8/8.1/10 下安装 .net framework 3.5.1: 1. 打开 win8/8.1/10 安装盘(这里指系统安装镜像文件),提取 sources\sxs 文件夹到 X:\sources\sxs (X代

ASP.Net.WebAPI和工具PostMan

1.WebAPI概述 1.1 WebAPI WebAPI 是一种传统的方式,用于构建和暴露 RESTUI风格的Web服务。它提供了丰富的功能和灵活性,可以处理各种HTTP请求,并支持各种数据格式,如JSON、XML等。 WebAPI使用控制器(Controllers)和动作方法(ActionMethods)的概念、通过路由配置将请求映射到相应的方法上。 开发人员可以使用各种属性和过滤器来处

【ASP.NET】 No 'Access-Control-Allow-Origin' header is present on the requested resource.

前端JS用XMLHttpRequest,请求后端数据。出现了No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 我是使用的ASP.NET框架。 解决办法: 在Web.config文件相应地方添加: <?xml version="1.0" encoding="utf-8"?><confi

【剖析】为什么说RBF神经网络的误差为0

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 机器学习中的模型非常的多,但如果要问有没有这样的一个模型,它的训练误差为0,那么就非RBF神经网络莫属了!下面我们来聊聊,为什么RBF神经网络的训练误差为0。 一、RBF神经网络是什么 知道RBF神经网络的人都知道,但不知道RBF神经网络的人还是不知道。所以简单提一下,RBF神经网络是一个什么东西。

vue dist文件打开index.html报Failed to load resource: net::ERR_FILE_NOT_FOUND

本地正常。打包好的dist文件打开index.html报Failed to load resource: net::ERR_FILE_NOT_FOUND 解决办法: 在webpack.prod.conf.js 中output添加参数publicPath:’./’ 在webpack.base.conf.js里 publicPath: process.env.NODE_ENV === ‘pro

导入别人的net文件报红问题sdk

1. 使用cmd命令 dotnet --info 查看自己使用的SDK版本 2.直接找到项目中的 global.json 文件,右键打开,直接修改版本为本机的SDK版本,就可以用了

.net 面试题总结(工作经验2年半)

一、Ajax调用的时候,get、post有什么区别? 答:get和post都是向服务器发送一种请求,只是发送机制不同     1 GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。     2.首先是”GET方式提交的数据最多只能是1024字节”,Post传输的数据量大,可以达到2M。     3.get方式请求数据会被浏览器缓存起来,因此其

.Net Core 学习

1、.Net Core 环境搭建 安装.NET Core:     .NET Core 包括.NET Core Runtime 和 .NET Core SDK: NET Core = 应用运行依赖的 .NET Core RuntimeNET Core SDK = 使用.NET Core开发应用.NET Core Runtime 和 SDK+CLI(Software Developmen

ADO.NET 学习汇总

一、ADO.NET 概要 ADO.NET  是 .NET 框架中的重要组件,主要用于完成C# 应用程序访问数据库。   说明: Connection:连接  ,  Transaction :事务   , Parameters : 参数 Command : 命令  ,SelectCommand 查询命令,InsertCommand 插入命令,UpdateCommand 更新命令