第13章 Web系统的多层结构总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用户表示层(实现 WebForm13-1.aspx 网页) 业务逻辑层(实现 DbOp 类) 数据访问层(实现 Database 类)
数据库 Stud
② 数据访问层DAL设计。在Myaspnet网站的ch13文件夹 中添加一个名称为WebForm13-1的空网页。单击“网站”中 的“添加新项”菜单命令,选中“类”选项,建立的类文件 为DAL(放在App_Code文件夹中),对应的代码如下:
public DataSet GetDataset(string mysql) //返回数据集 { DataSet myds = new DataSet(); SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn); myda.Fill(myds); return myds; } }
用户表示层(UI)
业务逻辑层用于做一些有效性验证 的工作,以更好地保证程序运行的健壮 性。如完成数据添加、修改和查询业务 等。 数据访问层用于专门跟数据库进行 交互。执行数据的添加、删除、修改和 显示等。
业务逻辑层(BBL) 数据访问层(DAL)
数据源
Βιβλιοθήκη Baidu
优点:采用分层有利于系统的开发、维护、部署和扩 展。采用“分而治之”的思想,把问题划分开来各个解决, 易于控制,易于延展,易于分配资源。
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient;
public class DbOP { private string bh; private string retstr; public string pbh { set { bh = value; } } public string pretstr { get { return retstr; } }
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
//班号 //查找结果字符串 //班号属性
//查找结果字符串属性
public void Compute() //计算指定班的所有课程的平均分 { int i = 0; Database db = new Database(); string mysql = "select 课程名,avg(分数) from student,score "; mysql += "where student.学号=score.学号 and student.班号='" + bh.Trim() +"' group by score.课程名"; DataSet myds = db.GetDataset(mysql); if (myds.Tables[0].Rows.Count > 0) //存在该班的分数记录时 { retstr = "课程名\t\t平均分\n"; while (i < myds.Tables[0].Rows.Count) { retstr += myds.Tables[0].Rows[i][0] + "\t"; retstr += string.Format("{0:n}",myds.Tables[0].Rows[i][1])+"\n"; i++; } } else retstr = "没有该班号的成绩"; } }
第13章 Web系统的多层结构
ASP.NET开发的Web系统是基于B/S模式的,Web 系统通常是多层架构。
13.1 Web系统的三层结构
13.1.1 什么是Web系统的三层结构 将整个业务应用划分为表示层-业务层-数据访问层-数 据库,明确地将客户端的表示层、业务逻辑访问、数据访问及 数据库划分出来,如图13.1所示。 其中表示层负责直接跟用户进行交互,一般指应用程序的 界面,用于数据录入,数据显示等。
其中包含一个Database类,通过构造函数建立并打开连 接,通过析构函数关闭连接,通过GetDataset公有方法执行 指定的mysql语句并返回对应的数据集。
③ 业务逻辑层BLL设计。单击“网站”中的“添加新项” 菜单命令,选中“类”选项,建立的类文件为BLL(放在 App_Code文件夹中),对应的代码如下:
public class Database { protected SqlConnection myconn; //保护的字段 public Database() //构造函数 { string mystr; mystr= ConfigurationManager.ConnectionStrings["myconnstring"].ToString(); myconn = new SqlConnection(); myconn.ConnectionString = mystr; myconn.Open(); } ~Database() //析构函数 { try { if (myconn!=null) myconn.Close(); } catch {} }
13.1.2 Web系统三层结构示例 通过一个典型的例子说明如何使用ASP.NET和SQL Server 2005来构建一个三层应用。 【例12.1】 设计一个用于显示指定班的所有课程平均分 的网页WebForm13-1。 解:其设计过程如下: ① 整体结构设计。采用Web三层体系结构,用户表示层 对应WebForm13-1网页,业务逻辑层设计成DbOp类,数据 访问层设计成Database类,如图13.2所示。
数据库 Stud
② 数据访问层DAL设计。在Myaspnet网站的ch13文件夹 中添加一个名称为WebForm13-1的空网页。单击“网站”中 的“添加新项”菜单命令,选中“类”选项,建立的类文件 为DAL(放在App_Code文件夹中),对应的代码如下:
public DataSet GetDataset(string mysql) //返回数据集 { DataSet myds = new DataSet(); SqlDataAdapter myda = new SqlDataAdapter(mysql, myconn); myda.Fill(myds); return myds; } }
用户表示层(UI)
业务逻辑层用于做一些有效性验证 的工作,以更好地保证程序运行的健壮 性。如完成数据添加、修改和查询业务 等。 数据访问层用于专门跟数据库进行 交互。执行数据的添加、删除、修改和 显示等。
业务逻辑层(BBL) 数据访问层(DAL)
数据源
Βιβλιοθήκη Baidu
优点:采用分层有利于系统的开发、维护、部署和扩 展。采用“分而治之”的思想,把问题划分开来各个解决, 易于控制,易于延展,易于分配资源。
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient;
public class DbOP { private string bh; private string retstr; public string pbh { set { bh = value; } } public string pretstr { get { return retstr; } }
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
//班号 //查找结果字符串 //班号属性
//查找结果字符串属性
public void Compute() //计算指定班的所有课程的平均分 { int i = 0; Database db = new Database(); string mysql = "select 课程名,avg(分数) from student,score "; mysql += "where student.学号=score.学号 and student.班号='" + bh.Trim() +"' group by score.课程名"; DataSet myds = db.GetDataset(mysql); if (myds.Tables[0].Rows.Count > 0) //存在该班的分数记录时 { retstr = "课程名\t\t平均分\n"; while (i < myds.Tables[0].Rows.Count) { retstr += myds.Tables[0].Rows[i][0] + "\t"; retstr += string.Format("{0:n}",myds.Tables[0].Rows[i][1])+"\n"; i++; } } else retstr = "没有该班号的成绩"; } }
第13章 Web系统的多层结构
ASP.NET开发的Web系统是基于B/S模式的,Web 系统通常是多层架构。
13.1 Web系统的三层结构
13.1.1 什么是Web系统的三层结构 将整个业务应用划分为表示层-业务层-数据访问层-数 据库,明确地将客户端的表示层、业务逻辑访问、数据访问及 数据库划分出来,如图13.1所示。 其中表示层负责直接跟用户进行交互,一般指应用程序的 界面,用于数据录入,数据显示等。
其中包含一个Database类,通过构造函数建立并打开连 接,通过析构函数关闭连接,通过GetDataset公有方法执行 指定的mysql语句并返回对应的数据集。
③ 业务逻辑层BLL设计。单击“网站”中的“添加新项” 菜单命令,选中“类”选项,建立的类文件为BLL(放在 App_Code文件夹中),对应的代码如下:
public class Database { protected SqlConnection myconn; //保护的字段 public Database() //构造函数 { string mystr; mystr= ConfigurationManager.ConnectionStrings["myconnstring"].ToString(); myconn = new SqlConnection(); myconn.ConnectionString = mystr; myconn.Open(); } ~Database() //析构函数 { try { if (myconn!=null) myconn.Close(); } catch {} }
13.1.2 Web系统三层结构示例 通过一个典型的例子说明如何使用ASP.NET和SQL Server 2005来构建一个三层应用。 【例12.1】 设计一个用于显示指定班的所有课程平均分 的网页WebForm13-1。 解:其设计过程如下: ① 整体结构设计。采用Web三层体系结构,用户表示层 对应WebForm13-1网页,业务逻辑层设计成DbOp类,数据 访问层设计成Database类,如图13.2所示。