【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对比

最近在开发小组在研究:BS项目中是利用‘MVC框架’还是继续沿用‘三层’的问题。

由于以前的.NET项目大多数都是利用三层开发的,所以大多数人都能够对三层进行熟练地运用。而项目的开始我们也曾听说过MVC的概念,但是因为没有项目经验的原因,所以总是停留在理论层次的比较。

在后期的DRP项目中,了解到Model1和Model2模型,而Model2模型就是MVC的应用。DRP中我们采用jsp做View层用于显示;Servlet做Controller用于取得表单参数、调用业务逻辑、转向页面;

同样都是MVC的理念,在Java和.NET中却有着不同的实现方式。(不作为本文的重点)

    本文作为.NET MVC系列文章中的第一篇,主要用于介绍MVC与三层之间的关系,后续博客将持续展开……

MVC只是一种思想,可以应用于各种平台。就是把一个应用程序分为三个组件,每个组件都有相应的职责:视图View、控制器Controller、模型Model。

MVC模式的两种理解:一种是表现模式(在ASP.NET的MVC中,把Model理解为ViewModel),另一种是架构模式(把Model模式理解为业务逻辑层和数据访问层的综合体)。这只是我目前初期阶段的理解。有不同见解的可以通过邮件或者评论的方式和我交流。

M:Model。主要是存储或出具数据的组件。其实就是实现业务逻辑层对实习类相应的操作,如:CRUD,它包括数据、验证规则、数据访问、业务逻辑等应用程序信息。ViewModel:视图模型

V:View。是用户接口层组件。将Model中的数据展示给用于。ASPX和ASCX文件被用来处理视图的职责。

C:Controller。处理用户交互。从model中获取数据并将数据传给指定的view。


  接下来看一些MVC与三层之间千丝万缕的关系:

从架构角度对比:MVC与三层

MVC架构综合模型:MVC是怎么实现交互的?

MVC架构综合模型的处理流程(对上图的更进一步解释):

执行的流程:

      1. 用户请求到达控制器
      2. 控制器处理用户的交互数据,并调用业务逻辑层处理数据
      3. 业务逻辑层通过数据库访问层对数据库做持久化处理
      4. 数据访问层返回处理完后的数据
      5. 业务层把业务数据交给UI层的控制器
      6. 控制器把业务数据封装为ViewModel
      7. 控制器把ViewModel的数据交给View进行展示
      8. 视图把数据转成视图额呢绒交给用户浏览

    之前的项目大多都采用三层架构来实现,所以对三层的开发流程已经形成了较为清晰的认识。而对于三层与MVC之间的关系,也常常容易混淆开发人员的视听,总有一种剪不断理还乱的感觉。

    相信经过本文的三张图形对比,您已经能够更加清晰地认识到了MVC架构以及MVC与三层之间的对应关系。接下来的任务就是通过项目实战加深MVC的理解了。

    (本文是建立在对三层了解的基础上进行论述的,对于三层部分的理解,这里不做过多赘述)

【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对比

时间: 2024-08-28 00:59:13

【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对比的相关文章

【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对比(颠覆性理论)

       在[.NET特供-第三季]系列博客中的第一篇<ASP.NET MVC系列:MVC与三层图形对比>发表之后,引起了领导的注意.同时,开发小组内部在交流MVC和三层之间关系的时候,也感到非常的混沌.        在这里对上一篇文中所阐述的错误概念,向读者表示诚挚的歉意.同时,非常感谢米老师辛勤指导.关于'MVC与三层图形对比'将在本文中做出修正.     学习是一个过程,对于概念的理解并不是一蹴而就的,而是盲人摸象的理论,逐渐清晰.     首先,给大家看一张图. 接下来的内容,将

MVC系列——MVC源码学习:打造自己的MVC框架(四:自定义视图)

前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾.对于这个系列,通过学习源码,博主也学到了很多东西,在此还是把博主知道的先发出来,供大家参考. 本文原创地址:http://www.cnblogs.com/landeanfen/p/6019719.html MVC源码学习系列文章目录: MVC系列——MVC源码学习:打造自己的MVC框架(一) MVC

MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个更加清晰的认识. 本文原创地址:http://www.cnblogs.com/landeanfen/p/6000978.html 这篇博主打算从零开始一步一步来加上MVC里面用到的一些技术,整篇通过三个版本,逐步完善. 一.版本一:搭建环境,实现MVC请求 通过上篇的介绍,我们知道,MVC里面两个最

【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照

近期在开发小组在研究:BS项目中是利用'MVC框架'还是继续沿用'三层'的问题. 由于曾经的.NET项目大多数都是利用三层开发的,所以大多数人都可以对三层进行熟练地运用.而项目的開始我们也曾听说过MVC的概念,可是由于没有项目经验的原因,所以总是停留在理论层次的比較. 在后期的DRP项目中,了解到Model1和Model2模型,而Model2模型就是MVC的应用.DRP中我们採用jsp做View层用于显示:Servlet做Controller用于取得表单參数.调用业务逻辑.转向页面: 相同都是M

【.NET特供-第三季】ASP.NET MVC系列:传统WebForm网站和MVC网站运行机制对比

本文以图形化的方式,从'运行机制'方面对比传统WebForm网站和MVC网站. 请参看以下图形: 一.运行机制 当我们访问一个网站的时候,浏览器和服务器都是做了哪些动作呢? (本文只是提供一个简单的运行过程,有兴趣的找资料研究一下复杂的网络过程.) (一)WebForm网站运行机制 假设为:www.baidu.com/index.aspx 1.Http请求(物理地址:index.aspx) ①发送请求 浏览器向服务器发送请求报文,此时由IIS虚拟目录接受.(通过配置过IIS,把网站挂载在服务器上

【转】【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

ASP.NET MVC系列文章 原文地址:https://www.cnblogs.com/wangjiming/p/6275854.html [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP.NET框架 [05]浅谈ASP.NET MVC运行过程 [06]浅谈ASP.NET MVC 控制器 [07]浅谈ASP.NET MVC 路由 [08]浅谈AS

[Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列——添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

Asp.net MVC]Asp.net MVC5系列——在模型中添加

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列--添加视图 [Asp.net MVC]Asp.net MVC5系列--添加模型 [Asp.net MVC]Asp.net MVC5系列--从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列--添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

Asp.net MVC]Asp.net MVC5系列——Razor语法

目录 概念 Razor语法 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列--添加视图 [Asp.net MVC]Asp.net MVC5系列--添加模型 [Asp.net MVC]Asp.net MVC5系列--从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列--添加数据 [Asp.net MVC]Asp.net MVC5系列--在模型中添加验证规则 [Asp.net