【ASP.NET MVC系列】浅谈MVC
描述
本篇文章主要概述ASP.NET MVC,具体包括如下内容:
1.MVC模式概述
2.WebForm概述
3.WebForm与MVC区别
4.ASP.NET MVC发展历程
5.运用程序结构
6.ASP.NET MVC 默认约定
一 MVC模式概述
1. MVC模式运用领域

分析:
(1)当前,MVC作为一种主流框架,被广泛运用,如JAVA Web开发,.NET ASP,NET MVC
(2)MVC模式被广泛运用于中间件,如RabbitMQ;
(3)MVC模式广泛运用于接口开发,如ASP.NET WebAPI;
(4)其他领域;
2.MVC大致流程概述

分析:
(1)MVC由三大核心模块构成:控制器(Controller,简称C),模型(Model,简称M)和视图(View,简称V);
(2)View负责视图呈现,Model负责数据处理,Controller负责处理视图与模型之间逻辑;
(3)WebForm中,一般是UI+BLL+DAL+Utility+WebService模式,而在MVC中,一般采用SOA+WebAPI+DAL+Model+MQ+AOP+Docker模式;
二 WebForm概述
1. WebForm生命周期

分析:
(1)WebForm Page生命周期,本质上为几个方法的运用;
(2)重点理解管道;
(3)分析页面生命周期时,应结合http本质来综合分析;
2.WebForm请求响应流程概述

分析:
(1).在WebForm中,资源可以分为静态资源和动态资源:
静态资源:JS文件,Images文件,CSS文件和Html文件等;
动态资源:.aspx,.ashx,.ascx等;
(2).在WebForm中,浏览器向IIS发出资源请求,当IIS收到请求URL时,先判断该请求是动态资源请求还是静态资源请求,然后分别按照不同的模式去服务器搜索资源。

3. WebFrom页面构成

分析:
(1)WebForm中,每个页面对应一个类,页面泪继承Page类,我们称为页面类,如上图中Default页面对应的类为_Default,
(2)每个页面由三部分组成:前端代码(Default.aspx),后台代码(Default.aspx.cs)和设计器(Default.aspx.designer.cs);
三 WebForm与MVC区别
1.WebForm不利于前后端分离,MVC前后端分离;

2.请求url不同,一般情况,WebForm请求的是服务器上的具体路径资源(当然你可以配置虚拟路劲),而MVC却并非如此(按照路由规则,一般情况是:/控制器/视图);
3.与MVC相互比较,响应时间(由于是服务端控件,服务器响应耗时)和带宽问题(WebForm会存在很多垃圾数据,如ViewState)

(4)WebForm中,一般是UI+BLL+DAL+Utility+Webservice模式,而在MVC中,一般采用SOA+WebAPI+DAL+Model+MQ+AOP+Docker模式;
四 ASP.NET MVC发展历程

五 运用程序结构

分析:
(1)在ASP.NET Web 框架中,目录结构是可以被扩展和修改的。
基于MVC框架自动生成的目录结构:

但在实际项目实践中,一般都需要调整,调整后的目录结构如下所示:

“空模板”,添加“单元测试”

默认生成结构如下

传统三层结构:

基于SOA架构

当然,在UI层,一般情况是需要分区的

六 APS.NET MVC基架约定

分析:
基于ASP.NET MVC 基架生成的MVC,有些默认的约定,如控制器必须以Cotroller结尾等,这些默认约定,不需要在Web.config配置文件中配置;
七 ASP.NET B/S基架包含的模板

分析:
1..NET分为C/S和B/S,B/S基架包含的模板为WebForm,MVC,WebApi,Single Page Application,Azure API运用;
八 其他内容
路由,控制器,视图,模型,表单和Html辅助方法,数据注解和验证,成员资格、授权和安全性,Nuget,WebApi,依赖注入,单元测试,MVC高级主题,将在后续文章中与大家分享。
九 参考文献
【01】ASP.NET MVC5 高级编程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孙远帅 译)
【02】MSDN
【ASP.NET MVC系列】浅谈MVC的更多相关文章
- MVC模式浅谈
MVC模式浅谈 一.MVC模式概述 模型-视图-控制器(MVC模式)是一种非常经典的软件架构模式,在UI框架和UI设计思路中扮演着非常重要的角色.从设计模式的角度来看,MVC模式是 一种复合模式,它将 ...
- 浅谈 MVC 和 MTV
浅谈 MVC 和 MTV 一.MVC M:model,模型,就是数据模型,负责数据的存取: V:view,视图,负责页面的展示逻辑: C:controller,控制器,负责业务逻辑的处理: 二.MTV ...
- 浅谈MVC、MVP、MVVM
MVC M: Model 模型——数据 (对于前台而言例如:ajax.jsonp等从后台获取数据的) V: View 视图——表现 ...
- 浅谈MVC、MVP、MVVM架构模式的区别和联系
MVC.MVP.MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用. 一.MVC(Model-View-Controller) MVC是比较直观的架构模式 ...
- 【转】浅谈MVC与三层架构
首先给大家引入下MVC的概念: MVC(Model View Controller)模型.视图以及控制器,它是一种较为广泛应用的结构设计模式. 模型:就是在MVC设计模式中需要被显示的数据.在通常情况 ...
- iOS 浅谈MVC设计模式及Controllers之间的传值方式
1.简述你对MVC的理解? MVC是一种架构设计.它考虑了三种对象:Model(模型对象).View(试图对象).Controller(试图控制器) (1)模型:负责存储.定义.操作数据 (2)视图: ...
- 浅谈MVC Razor基本语法
首先说下MVC,mvc已经不用ViewState来保留网页的状态,所以大部分依赖ViewState的功能都将无法使用, 比如gridview的分页与排序,page trace等利用viewstate记 ...
- 浅谈MVC中路由
引言 学习ASP.NET MVC 路由这一关是肯定必不可少的.这一节,我们就来简单介绍下MVC中的路由机制.简单的路由机制相信大家都已了解,这一节主要介绍路由中很少使用的部分. 使用静态URL片段 在 ...
- 浅谈 MVC中的ViewData、ViewBag和TempData
ViewBag和TempData的区别 ViewData ViewBag 它是Key/Value字典集合 它是dynamic类型对像 从Asp.net MVC 1 就有了 ASP.NET MVC3 才 ...
随机推荐
- HDFS API基本操作
对HDFS API基本操作都是通过 org.apache.hadoop.fs.FileSystem类进行的,以下是一些常见的操作: package HdfsAPI; import java.io.Bu ...
- PHP格式化金钱函数
实现目的: 对数字进行格式化,以类似¥10,000,000的格式输出. 实现方法: function doFormatMoney($money){ $tmp_money = strrev($money ...
- 传输层TCPUDP 具体解释
1.传输层存在的必要性 因为网络层的分组传输是不可靠的,无法了解数据到达终点的时间,无法了解数据未达终点的状态.因此有必要增强网络层提供服务的服务质量. 2.引入传输层的原因 面向连接的传输服务与面向 ...
- Photoshop的版本体系
Photoshop CS6 和Photoshop CC的区别 没有什么玄乎的,仅仅是版本不一样. 版本的命名 Photoshop CS6 是CS系列的最后一版本, Adobe Photoshop CS ...
- KVM-Introduce
相信非常多的人对虚拟机并不陌生,眼下也有非常多优秀的虚拟机软件,比如:VMware, VirtualBox, Xen, KVM等.而本文的主要内容是介绍KVM. KVM: Kernel Based V ...
- 11.2 为什么要使用 MVC
以前的大部分应用程序(非Android应用)都是用像ASP.PHP或者CFML这样的过程化(自PHP5.0版本后已全面支持面向对象模型)语言来创建的.它们将像数据库查询语句这样的数据层代码和像HTML ...
- sqlite3 支持的关联查询
1.支持多表连接,例如 select * from student,class where student.cid=class.id; 2.支持左外连接(left outer join) 例如: se ...
- 在上已个Java Spring MVC项目基础上加MyBatis
代码目录: /Users/baidu/Documents/Data/Work/Code/Self/HelloSpringMVC 1. 首先在resource目录加上jdbc.properties: d ...
- 深度Linux Deepin系统安装教程使用体验
很早以前,试用过一次深度的OS,那时深度刚出自己的Linux修改版系统,过了有两年了,准备看看Deepin OS有什么变化,和雨林木风的Start OS比,有什么不同 1.安装的引导菜单和Start ...
- MapReduce 编程模型概述
MapReduce 编程模型给出了其分布式编程方法,共分 5 个步骤:1) 迭代(iteration).遍历输入数据, 并将之解析成 key/value 对.2) 将输入 key/value 对映射( ...