课程4上课日志2+三层架构

上传人: y****g 文档编号:131873811 上传时间:2020-05-10 格式:DOC 页数:8 大小:108.50KB
返回 下载 相关 举报
课程4上课日志2+三层架构_第1页
第1页 / 共8页
课程4上课日志2+三层架构_第2页
第2页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《课程4上课日志2+三层架构》由会员分享,可在线阅读,更多相关《课程4上课日志2+三层架构(8页珍藏版)》请在金锄头文库上搜索。

1、课程4上课日志2一、复习、梳理三层架构开发步骤1、回顾三层架构的登录功能(实例4-1)的实现提问1:通常的三层架构指哪三层?提问2:三层架构之间的调用关系?2、三层架构开发过程梳理(1)搭建三层架构的基本结构注意/提问:数据实体模型层(Model)、数据访问层(DAL)、业务逻辑层(BLL)、表现层(UI)它们是并列关系,前3项项目类型均为类库;表现层项目类型可以web应用程序、windows应用程序等。(2)在Model层中针对(每一个)表建立一个表实体类,用于封装表的数据,便于在层中传递数据一条记录对应于一个表实体类对象,比如UserLogin user多条记录就封装成表实体类对象的泛型集

2、合,比如List(3)把工具类SqlHelper.cs复制到DAL层中,并在使用之前添加相关引用、命名空间及在配置文件中添加连接数据库字符串。在DAL层中针对(每一个)表建立一个,一般取名为:TableNameDal.cs,该类用于封装所有对该表数据操作的方法(增删改查)。该层中要添加对Model层的引用,并引入其命名空间。(4)在BLL层中针对(每一个)表建立一个,一般取名为:TableNameBll.cs,该类一般先通过对应DAL中的类实例化一个对象,然后在BLL层中建立方法,通过调用DAL的方法返回数据。该层中要添加对Model层和DAL层的引用,并引入其命名空间。(5)在UI层中添加窗

3、体界面,并对其进行美工,然后注册相应事件,并在其中通过BLL层的对象调用对应的方法实现需要的功能。该层中要添加对Model层和BLL层的引用,并引入其命名空间。二、三层架构第1次作业(紧密相关理论题)讲解三、Web窗体(AutoEventWireup=true)、Page类及服务器控件的认识与理解1、Web窗体Web窗体就是指网页,该网页包括可视化界面和逻辑代码两部分,可视化界面主要是指以“.aspx”为后缀的代码文件,用于存放显示服务器控件,而实现这些控件功能的逻辑代码位于“.aspx.cs”的后缀文件中,也被称作“代码隐藏”文件。这种技术也叫后代吗(Codebehind)技术,该技术没有完

4、全对代码和前台页面分离,耦合度较高(后续课程MVC架构很好的解决此问题),“.aspx”和.aspx.cs”文件是继承关系。理解 Codebehind - 指示后台代码文件 Inherits - 继承类 AutoEventWireup - 决定了当前页是否自动关联某些特殊事件。主要指Page_Init, Page_Load, Page_DataBind, Page_PreRender和Page_Unload等。AutoEventWireup=true(默认设置),页面首次加载的时候(IsPostback=false;)会自动执行Page_Load方法;触发页面的其他事件时(如按钮单击),也会先

5、执行Page_Load方法(只是这个时候的IsPostback=true),接着再去执行对应的事件。Page_Load()if(!IsPostback)/首次加载 2、Page类Web窗体就是Page类的一个对象,该对象充当Web页面中大部分服务器控件的容器。这些窗体都直接或间接的继承自System.Web.UI.Page类。当项目被编译时窗体页面被编译为Page类的对象,并被缓存到服务器的内存中。3、服务器控件服务器控件是指可编程的服务器端对象,这些对象可在服务器上执行程序逻辑。(1)HTML服务器控件HTML 元素是被当作文本来处理的,这些元素不能被服务器端控制,为了使这些元素可编程化,可

6、以在 HTML元素的基础上添加 runat=server 属性,用于标识该元素作为服务器控件进行处理(2)Web服务器控件Web 服务器控件是可被服务器理解的特殊ASP.NET标签,它比HTML服务控件更抽象、具有更多的内置功能,不仅增强了ASP.NET的功能,还极大地提高了开发效率。一种服务器控件实际上就是一个类。(封装太强)TextBox txt = new TextBox();txt.Text = test;Response.Write(txt.Text);下面四至八为实例4-1(三层架构的登录功能)增加学生信息列表展示功能以下简称为实例4-2四、在Model层增加Student表实体类

7、(可空值类型)1、实例功能展示通过完整源代码展示2、Stuent表说明ItcastStuent(ID为自动增长)注意: 一张表一般都要设计一个自动增长的ID列作为主键,一般不要去创建组合主键。3、编写表实体类(Student.cs)代码public class Student public int ID get; set; public string StuNum get; set; public string StuName get; set; public string StuClass get; set; public string Subject get; set; public in

8、t? StuAge get; set; public string StuPhone get; set; public string StuGender get; set; 说明: int?表示可空的值类型思考: 有没有string?类型?为什么?五、为实例4-2在数据访问层添加查询学生数据的类及方法在LessonDAL层中添加一个名称为 “StudentDal.cs”的类文件,该类中封装所有对Student表的操作(增删改查)代码,这里暂且先只写一个“查”的代码,即查询所有Student表的数据,并封装成泛型集合List返回。public class StudentDal public Li

9、st GetAllStudent() string sql = select * from Student; List studentList = new List(); using (SqlDataReader reader = SqlHelper.ExecuteReader(sql)/提示:(sql,null),可变参数为空时可以不写。思考:这里using()可以不加吗? if (reader.HasRows) while (reader.Read() Student stu = new Student(); stu.ID = reader.GetInt32(0); stu.StuNum

10、= reader.GetString(1); stu.StuName = reader.GetString(2); stu.StuClass = reader.GetString(3); stu.Subject = reader.GetString(4); stu.StuAge = Convert.IsDBNull(reader5) ? null : (int?)reader.GetInt32(5); stu.StuPhone = reader.GetString(6); stu.StuGender = reader.GetString(7); studentList.Add(stu); re

11、turn studentList; 提问:reader5改为 reader.GetInt32(5)可否?说明:Convert.IsDBNull()的作用。六、为实例4-2在业务逻辑层添加获取学生数据的类及方法(对象为null的含义)在Lesson1BLL层中添加 “StudentBll.cs”类文件,并在其中定义一个GetAllStudent的方法。该方法通过调用数据访问层的方法获取数据。public class StudentBll private StudentDal dal=new StudentDal(); public List GetAllStudent() return dal.

12、GetAllStudent().Count 0 ? dal.GetAllStudent() : null; 思考:1、这里dal.GetAllStudent()是递归调用吗?2、黄色底纹的代码能否直接写return dal.GetAllStudent();两者的区别在哪?,哪种更好呢?(提示:用Student表数据为空测试)。理解下面两点含义。对象对象 实例化一个对象List studentList = new List(); 对象studentList =null七、为实例4-2在表现层调用业务逻辑层获取数据并展示private StudentBll bll = new StudentBll(); protected void Page_Load(object sender, EventArgs e) if (SessionUserName = null) Response.Redirect(/Login.aspx); else List studentlist = bll.GetAllStudent(); StringB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > .NET

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号