三层架构简介:

  三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

步骤如下:

1.新建一个空白解决方案,起好结局方案名称.

2.右击解决方案,选择C#语言 ==> 类库 ,起好类库名称. 比如:BookShop.MODEL(数据交互层).

3.重复第二步,依次建出DLL层,BAL层. 比如:BookShop.BLL(业务逻辑层),BookShop.DAL(数据访问层).

4.右击解决方案,选择C#语言 ==> Windows 窗体应用程序. 比如:BookShop.UI(表示层).

5.依次删除BLL,DAL,MODEL层中的Class1,然后右键 ==> 添加 ==> 新建项 ==> 类,并将其命名.(删除后添加是为了按照一定的命名规则调用,不会使自己误用Class1).

BLL层以Manager结尾(例:UserManager),DAL层以Service结尾(例:UserService),MODEL层的名与数据库中的表名一致(例:Users).

6.添加引用,UI层引用 BLL MODEL , BLL层引用 DAL MODEL , DAL层引用 MODEL , 都是向下引用的.

7.在DAL层新建个SqlHelper类,用于连接数据库使用的.

8.MODEL层主要负责参数的取值和赋值,参数应该和数据库表中的列对应起来.

	public string UserId { get; set; }      ==       private string UserId;

       							 public string id

       							 {
   get{ return ID; }
  set{ ID = value;}
}

9.想实现两个类互相调用需要三点:添加引用,声明命名空间,public修饰.

10.写代码首先从DAL层,BLL层,UI层依次写入.(建议)

11.一些ADO.NET对象介绍

	Connection : 用于连接数据库命令.

	Command :  执行针对数据库的SQL命令.

	ExecuteScalar() : 返回第一行第一列的值(object类型).

	ExecuteNonQuery() : 返回执行命令后受到影响的行数(int类型).

	ExecuteReader() : 返回结果集的SQL语句、存储过程,并存放在DataReader类型的对象.

	DataReader :  不能写入,并且只能从头至尾往下读,逐行读取的特性.

		     SqlDataReader reader = cmd.ExecuteReader();

		     while(reader.Read()) ==>所有的数据放到reader里

		     {

			  listBox1.Items.Add(reader.GetValue(0));

		     }

	DataAdapter :  直接显示表格可以考虑使用!

		      DataSet ds = new DataSet();

                     DataTable dt = new DataTable();

		     SqlDataAdapter adpt = new SqlDataAdapter(cmd);

                     adpt.Fill(ds);

               	     dt = ds.Tables[0];

	DataSet : 表的集合.

		 DataSet ds = new DataSet();

	DataTable : 单个表.

		 DataTable dt = ds.Tables[0];  ==>取DataSet中的第一个表;

	DataRow : 取单行.

		 DataRow dr = dt.Rows[0];   ==> 取dt表中的第一行记录;

	SqlParameter : 可理解为是个数组,数组的元素起占位符作用.

		 string sql = "select * from users where loginId=@loginId and LoginPwd=@pass";

                 SqlParameter[] pars = new SqlParameter[2];	==> 定义两个数组长度

	         pars[0] = new SqlParameter("@loginId", loginId);	==> 第一个元素

	         pars[1] = new SqlParameter("@pass", password);

		 DataTable dt= SqlHelper.ExecuteDataTable(sql, CommandType.Text, pars);	==>  把参数传到SqlHelper类ExecuteDataTable的方法

.NET 三层架构的更多相关文章

  1. asp.net三层架构 及其中使用泛型获取实体数据介绍

    asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...

  2. 关于三层架构与MVC的一些理解

    刚毕业的时候,参与了一个上位机的系统开发.上位机所使用的是.net Windows Form技术. 当时,和一个北理的姑娘在一个项目组里.因为她来公司时间比较长,而且经验比较丰富,所以,上位机的架构由 ...

  3. 架构和模式的区别:三层架构和MVC在应用开发中的位置

    架构是系统层面的,可以是多层架构,也可以是事件驱动架构,也可以是微服务架构. 模式是GUI应用的一种职责分离设计. 三层架构(包含多层架构)和 MVC模式(包含MVP, MVVM) 没什么关系,它们不 ...

  4. 从零开始编写自己的C#框架(5)——三层架构介绍

    三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发. 在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪—<.NE ...

  5. 【转】浅谈MVC与三层架构

    首先给大家引入下MVC的概念: MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式. 模型:就是在MVC设计模式中需要被显示的数据.在通常情况 ...

  6. 有了门面,程序会更加体面!- pos软件基于三层架构 -09

    续上篇)        大鸟说道:“实际上没有学过设计模式去理解三层架构会有失偏颇的,毕竟分层是更高一级别的模式,所谓的架构模式.不过在程序中,有意识的遵循设计原则,却也可以有效的做出好的设计.”   ...

  7. 三层架构 与 MVC那点事儿

    以下为转载内容: 地址 MVC与三层架构的异同点 首先先解释一下MVC. V即View.是视图的意思. C即Controler.是控制器的意思. M即Model,是模型的意思. 这三个里.最不容易理解 ...

  8. JDBC三层架构

    三层框架: 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. 原理:1:数据访问层:主要是对原始 ...

  9. 浅析MVC模式与三层架构的区别01

    三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...

  10. 利用Dapper ORM搭建三层架构

    利用Dapper关系对象映射器写的简单的三层架构.Dapper:StackOverFlow在使用的一个微型的ORM,框架整体效率较高,轻量级的ORM框架.网上有较多的扩展.此处只是简单的调用Dappe ...

随机推荐

  1. --@angularJS--综合小实例1

    <!DOCTYPE HTML><html ng-app="myapp"><head> <title>综合小实例</title& ...

  2. Ubuntu 安装wireshark

    参考:ubuntu下安装wireshark 依赖及相关包的安装 1.编译工具 apt-get install build-essential 2.GTK+的开发文件和GLib库(libraries) ...

  3. dbf导入sqlserver的方法

    1. dbf导出为foxpro2.x. 2.打开excel,点击打开,选择dbase文件,选中第一步保存的文件. 3.另存为xls格式 4.使用sql的dts导入xls.

  4. FineUI表格模板列Undefined问题

    一般是配置文件未添加ClientID="AutoID"引起

  5. 如何编译POCO

    Poco C++库是: 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa; 侧重于互联网时代的网络应用程序 使用高效的,现代的标准ANSI/ISO C++,并基于STL 高可移 ...

  6. 各个浏览器开启CSS Grid Layout的方式

    2017年3月,Chrome.Firefox将开启默认支持. 当然对于很多人等不及浏览器默认支持,想提前体验一把,这里提供一些打开方式: 1.Chrome 在浏览器中输入:chrome://flags ...

  7. Linux笔记(十四) - 日志管理

    (1)rsyslogd的服务:查看服务是否启动:ps aux | grep rsyslogd 查看服务是否自启动:chkconfig --list | grep rsyslog 配置文件 : /etc ...

  8. MVC + Vue.js 初体验(实现表单操作)

    Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...

  9. Javaweb阶段知识回顾一

    java基础增强 一.jdk1.5的新特性 自动封箱拆箱 封箱:Java自动将原始类型值转换成对应的对象,如将int的变量转换成Integer对象 拆箱:自动将对应的对象转换成原始类型值,将Integ ...

  10. 背景图height:100%显示

    这段时间,写移动端页面,总是遇到背景图在不同的设备上的显示拉伸问题: 本来想写百分比,可是并没有显示,又不想media@ ,换一种思路用img写 群友提供了一个办 html,body{height:1 ...