三层架构-----实践篇
2017-06-01 14:20
239 查看
上篇论述了三层的基本概念,作用,关系,如今展示下系统中用户登陆过程中简单应用三层结构设计思想。
vb.NET的操作例如以下
首先建立下面windows应用程序以及类库
首先建立实体类
DAL层:前提引用实体类
三者中不论什么一者发生变化都不会影响其它俩者的正常工作。仅仅对变化者进行又一次调整就可以。
三层把Entity实体类的实例作为參数来传递.
总之,表示层仅仅提供软件系统与用户交互的接口。业务逻辑层是界面层和数据訪问层之间的桥梁,负责数据处理和传递;数据訪问层仅仅负责数据的存取工作。
vb.NET的操作例如以下
首先建立下面windows应用程序以及类库
首先建立实体类
Public Class userInfo Private _username As String Public Property UserName As String Get Return _username End Get Set(ByVal value As String) _username = value End Set End Property Private _pwd As String Public Property Pwd As String Get Return _pwd End Get Set(value As String) _pwd = value End Set End Property End ClassUI层,前提是引用实体类(model)和BLL
Public Class Form1 Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Me.Close() End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click Try Dim euser2 As New Model.userInfo Dim euser3 As New Model.userInfo euser2.UserName = txtUserName.Text.Trim '将U层数据传递给实体 euser2.Pwd = txtPassword.Text.Trim Dim mgr As New BLL.LoginMannager '将数据传递给B层 euser3 = mgr.UserLogin(euser2) Catch ex As Exception MessageBox.Show(ex.Message.ToString()) End Try End Sub End Class
DAL层:前提引用实体类
Imports System.Data Imports System.Data.SqlClient Imports Model Public Class user '创建数据库链接 Public conn As New SqlConnection("server=LXY;database=login;user Id=sa;password=123456") Public Function SelectUser(ByVal User As Model.userInfo) As Model.userInfo '传递实体uesrinfo而不是參数id.username 等。这样方便对实体中參数进行调用 Dim reader As SqlDataReader Dim eUser As New Model.userInfo Dim sql As String = "select UserName,PassWord FROM User_info WHERE UserName=@username and PassWord=@password" Dim cmd As New SqlCommand(sql, conn) cmd.CommandText = sql cmd.CommandType = CommandType.Text cmd.Parameters.Add(New SqlParameter("@username", User.UserName)) cmd.Parameters.Add(New SqlParameter("@password", User.Pwd)) conn.Open() reader = cmd.ExecuteReader While reader.Read() eUser.UserName = reader.GetString(0) eUser.Pwd = reader.GetString(1) End While Return eUser conn.Close() End Function End Class接下来是BLL层:前提引用DAL和实体类
Public Class LoginMannager Public Function UserLogin(ByVal User As Model.userInfo) As Model.userInfo Dim uDao As New DAL.user Dim eUser1 As New Model.userInfo eUser1 = uDao.SelectUser(User) '将数据传给D层 If IsNothing(eUser1.UserName) Then Throw New Exception("登录失败。请验证请验证登陆名和password!") Else MsgBox("登陆成功。") Return eUser1 End If End Function End Class引用:我们看到三层架构的主要特点:UI调用BLL中类的方法,即UI知道BLL的方法,但不知道方法实现的细节,而BLL层并不知道UI的存在.相同BLL层调用DAL,而DAL也不知道BLL的存在。
三者中不论什么一者发生变化都不会影响其它俩者的正常工作。仅仅对变化者进行又一次调整就可以。
三层把Entity实体类的实例作为參数来传递.
总之,表示层仅仅提供软件系统与用户交互的接口。业务逻辑层是界面层和数据訪问层之间的桥梁,负责数据处理和传递;数据訪问层仅仅负责数据的存取工作。
相关文章推荐
- 三层架构——实践篇(二)
- MVC项目实践,在三层架构下实现SportsStore-10,连接字符串的加密和解密
- 登录例子实践---三层架构
- 三层架构-----实践篇
- MVC项目实践,在三层架构下实现SportsStore-05,实现导航
- MVC项目实践,在三层架构下实现SportsStore-06,实现购物车
- MVC项目实践,在三层架构下实现SportsStore-08,部署到IIS服务器
- MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层
- .NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
- MVC项目实践,在三层架构下实现SportsStore-11,使用Knockout实现增删改查
- 三层架构模式(开发实践很重要)
- MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
- 三层架构--实践篇(转载)
- .NET应用架构设计―面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
- .NET应用架构设计—面向查询的领域驱动设计实践(调整传统三层架构,外加维护型的业务开关)
- MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
- MVC项目实践,在三层架构下实现SportsStore,从类图看三层架构
- MVC项目实践,在三层架构下实现SportsStore-04,实现分页
- 三层架构--理论与实践
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等