一、简介
在上一篇将MVC的时候,有很有朋友对简单三层的概念不是很熟悉,因此,今天进行简单三层的一个简单介绍,同时为理解MVC中的Model做知识累计。
传统的三层主要指的是UI层,BLL层,DAL层:
- UI层:与用户进行交互的前台层,主要负责展示数据给前台,以及接受数据到后台。
- BLL层:可以叫它业务层,主要负责处理业务逻辑,比如说数据的校验等等操作。
- DAL层:很重要的数据访问层,主要负责和数据库进行交互,完成数据的读取以及写入等操作。
这里没有提到Models,可能会有人感到惊奇,Models是三层的概念,但不是三层的层概念,Models是一个存放实体类型的层。
上面是理论概念,下面再讲下他们之间的调用关系,然后我们就上一些例子来促进理解。。。。。。
对上图进行简单的介绍:这样的分层,主要目的是将业务逻辑和数据访问进行一个分离。如果不进行这样的分层,混合在一起,当你的数据库进行一下调整,你就需要将所有进行数据访问的地方都修改,那就太痛苦了,你会有疯了的冲动,嘿嘿。但是,如果这样分层后,你只需要修改DAL层里面的方法,BLL不需要修改,是不是感觉到一点分层的意义了。
二、代码层面理解
我们先理解下Model实体,这个可是贯穿三层的东东,下面来看下一张数据表:
可以对应的实体类,来看看,我们在构造实体类的时候,要注意类型对应:
//============================================================ //author:zhujinghui //============================================================ using System; using System.Collections.Generic; using System.Text; namespace ZJH.ThreeLayer.Models { [Serializable()] public class UserInfo {//UserInfo对应表名,这个不硬性规定,但是约定俗成 public int ID { get; set; } public string UName { get; set; } public string UPwd { get; set; } //这里值得注意,在数据库中是可以为null,在类型中对应int?可空类型 public int? UAge { get; set; } public DateTime SubTime { get; set; } public bool DelFalg { get; set; } public string Remark { get; set; } } }