【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配置文件中配置;
七 参考文献
【01】ASP.NET MVC5 高级编程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孙远帅 译)
【02】MSDN
八 版权区
- 感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
- 博主网址:http://www.cnblogs.com/wangjiming/。
- 极少部分文章利用读书、参考、引用、抄袭、复制和粘贴等多种方式整合而成的,大部分为原创。
- 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:2016177728@qq.com。
- 可以转载该博客,但必须著名博客来源。
【ASP.NET MVC】MVC概述的更多相关文章
- ASP.NET Core MVC 概述
https://docs.microsoft.com/zh-cn/aspnet/core/mvc/overview?view=aspnetcore-2.2 ASP.NET Core MVC 概述 20 ...
- ASP.NET Core - ASP.NET Core MVC 的功能划分
概述 大型 Web 应用比小型 Web 应用需要更好的组织.在大型应用中,ASP.NET MVC(和 Core MVC)所用的默认组织结构开始成为你的负累.你可以使用两种简单的技术来更新组织方法并及时 ...
- 使用 ASP.NET Core MVC 创建 Web API(一)
从今天开始来学习如何在 ASP.NET Core 中构建 Web API 以及每项功能的最佳适用场景.关于此次示例的数据库创建请参考<学习ASP.NET Core Razor 编程系列一> ...
- ASP.NET Core MVC 授权的扩展:自定义 Authorize Attribute 和 IApplicationModelProvide
一.概述 ASP.NET Core MVC 提供了基于角色( Role ).声明( Chaim ) 和策略 ( Policy ) 等的授权方式.在实际应用中,可能采用部门( Department , ...
- ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...
- ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...
- ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...
- ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
一.前言 1.本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数的路由示例 ASP.NET Core MVC固定前/后缀的路由示例 ASP.NE ...
- Pro ASP.Net Core MVC 6th 第四章
第四章 C# 关键特征 在本章中,我描述了Web应用程序开发中使用的C#特征,这些特征尚未被广泛理解或经常引起混淆. 这不是关于C#的书,但是,我仅为每个特征提供一个简单的例子,以便您可以按照本书其余 ...
- Pro ASP.NET Core MVC 6th 第三章
第三章 MVC 模式,项目和约定 在深入了解ASP.NET Core MVC的细节之前,我想确保您熟悉MVC设计模式背后的思路以及将其转换为ASP.NET Core MVC项目的方式. 您可能已经了解 ...
随机推荐
- ASP.NET Core 异常处理与日志记录
1. ASP.NET Core 异常处理与日志记录 1.1. 异常处理 1.1.1. 异常产生的原因及处理 1.1.2. ASP.NET Core中启动开发人员异常页面 1.2. 日志记录 1.2.1 ...
- ImageMagick图片服务器
1.前置准备工具如下: nodejs express(nodejs mvc框架) body-parser(express middleware) gm(nodejs中用来处理图片的) uuid(nod ...
- linux操作系统基础篇(三)
1.cat命令 cat除了可以用来查看文本文档还可以将两个文本文档纵向合并到另外一个文本文档中 比如 cat /etc/passwd /etc/group > 1.txt 2. 归纳了所有的压缩 ...
- MySQL5.6新特性
Innodb加强项 1.Innodb全文索引 mysql> show create table film_text\G . row *************************** Tab ...
- php中向前台js中传送一个二维数组
在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...
- array_unique和array_flip 实现去重间的区别
array_unique和array_flip 实现去重间的区别 php有内置函数array_unique可以用来删除数组中的重复值, phperz~com (PHP 4 >= 4.0.1, ...
- 自己动手修改Robotium代码(下)
public void takeScreenshot(){ View decorView = viewFetcher.getRecentDecorView(viewFetcher.getWindo ...
- mybatis中sql语句的批量插入
<!-- 收件箱插入收件信息 --> <insert id="insertReceiveemail"> <!-- 生成一条U ...
- shopxx--权限功能测试
shiro权限控制 一.添加角色 1.打开 系统→角色管理,点击 添加 赋予当前角色对应的权限 二.添加管理员(即用户管理) 添加用户,赋予刚才添加的角色 三.用新用户登录,进行测试 登录结果
- Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享
Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享 ============================= 蕃薯耀 2017年11月27日 http: ...