索鸟网

  1. 首页
  2. .NET MVC与三层架构

.NET MVC与三层架构


虽然接触了两者有一段时间了,但是有时还是会混淆概念,在此处不打算说明二者的区别,因为二者都是架构模式,并且也有一定的共存度,在实际开发中,严格区分意义不大。基于最近涉及到这部分知识就在复习下,编程过程中,基础概念更重要,而不是技术。

  先看看,三层架构吧,即UI(表示层),BLL(业务逻辑层),DAL(数据访问层):

    UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。

    BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。

    DAL:(数据访问层):与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)
    
    其实,真正使用过三层架构的都知道,三者之间是通过Entity传递数据的,Entity贯穿三层,将三者连接起来,同时也实现了对数据实体的封装,取代了个层之间多变量的数据传递(数据交流),大大的简化了数据交流,也降低了数据发生错误的概率。(Entity其实就是对数据库表实体的封装),Entity与三层之间的依赖关系:
    
    再看MVC架构,即M(model 模型·),V(view 视图),C(controller 控制器)三个部分。在MVC架构中这三部分是必须的,但我们也可以根据项目的实际需求与实际情况还能再增加,比如实现Service层或Repository层等,我们可以自行扩展,大幅提高了开发时的灵活性。

    Model(数据模型):用于封装与应用程序在商业逻辑上相关的数据,以及对其数据操作的处理方法(数据库的访问操作,即增删改查;数据结构的定义;数据格式的验证)。Model并不依赖于View和Controller,也就是说Model并不需要知道它会如何被显示出来或如何被应用,只需要专注于自己该有的责任即可。Model中常见的技术有Entity Framework(即EF)、NHibernate、LINQ to SQL、Typed DataSet和ADO.NET等。

    View(视图): 页面显示或获取用户输入,View需要负责将Controller传过来的数据配合“显示逻辑”呈现给用户,此处虽然View需要Contorller传递数据,但是View并没有依赖某个Controller,任何Controller只要能提供View所需要的数据,View就可以根据显示逻辑将其显示出来,是一种松散的关联关系。

    Controller(控制器):属于一种结果协调者的角色,因为M-V-C三个部分没有直接的联系,View无法直接与Model沟通,即Model可以操作数据,View可以显示数据,因此,VIew显示的数据需由Controller从Model获取后提供给View。即Controller的角色位于用户接口层和商业逻辑层中间。

.net

来源地址:https://segmentfault.com/a/1190000010500015 版权归作者所有!

相关教程

  • JDBC编程(MVC三层架构)(二)

    接上文“JDBC编程(MVC三层架构)(一) ” 4、控制层 package com.imooc.action; import java.sql.SQLException; import java.util.List; import java.util.Map; import com.imooc.loser.Loser; import com.imooc.model
  • JDBC编程(MVC三层架构)(一)

    JDBC编程 功能:通过MVC三层架构,实现增、删除、改和查; 环境:JDK1.6,Mysql 5.5.48 表结构(表名:imooc_goddess): 1、工具类:连接数据库 package com.imooc.db; import java.sql.DriverManager; import java.sql.ResultSet; import java.s
  • JAVAEE企业级应用开发浅谈之二:MVC和三层架构

    上海尚学堂:不积跬步无以至千里,不积小流无以成江海 Step1.情景概要 Hello,小伙伴们,昨天跟大家分享了JAVA EE 企业级应用开发中大家耳熟能详的概念-三层架构,那么有的小伙伴可能就会有疑问了,这种代码书写方式我每天写这些web 项目时都是在采用该方式呢,那跟我们所接触的MVC 有啥区别呢,借着这样的疑问,我们今天
  • MySQL三层逻辑架构

    MySQL的存储引擎架构将查询处理与数据的存储/提取相分离。下面是MySQL的逻辑架构图: 第一层负责连接管理、授权认证、安全等等。每个客户端的连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名和密码的方式进行认证,也可以通过SSL证书进行认证
  • JAVAEE企业级应用开发浅谈第二辑

    上海尚学堂:不积跬步无以至千里,不积小流无以成江海 Step1.情景概要 Hello,小伙伴们,昨天跟大家分享了JAVA EE 企业级应用开发中大家耳熟能详的概念-三层架构,那么有的小伙伴可能就会有疑问了,这种代码书写方式我每天写这些web 项目时都是在采用该方式呢,那跟我们所接触的MVC 有啥区别呢,借着这样的疑问,我们今天聊聊我们程序员们在开发时经常
  • [C#与.NET程序设计](1)- .NET

    首先要厘清语言、框架和架构的区别: 语言包含 C/C++、Visual Basic 6、Java、C# 等 框架包含 MFC、ATL、STL、.NET 等 架构包含 COM、CORBA、EJB 等 在.NET之前,windows的软件开发从原始到先进的工具依次为:C/Windows API、C++/MFC、VB6.0、Java、COM 而.NET以一种激
  • javaEE的开发模式

    1、模式: 在开发过程中总结出来的一套方法。 2、javaEE经历的模式: model1模式 技术组成:jsp+javaBean 弊端: 业务复杂后导致Jsp页面混乱 model2模式 技术组成:jsp+sevlet+javaBean MVC模式 M:Model——javaBean:封装数据 V:View——jsp:单纯的页面数据的现实 C:
  • 初识Hibernate ORM框架

    本文介绍JavaWeb三层架构、Hibernate以及ORM基本概念。 一、JavaWeb三层架构 JavaWeb三层架构分别为: Web层:表示层,主要的设计模式为MVC,主要技术有:Struts2和SpringMVC Service层:业务逻辑层,主要技术有:Spring Dao层:数据访问层,即数据持久化层,主