描述

本篇文章主要概述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概述的更多相关文章

  1. ASP.NET Core MVC 概述

    https://docs.microsoft.com/zh-cn/aspnet/core/mvc/overview?view=aspnetcore-2.2 ASP.NET Core MVC 概述 20 ...

  2. ASP.NET Core - ASP.NET Core MVC 的功能划分

    概述 大型 Web 应用比小型 Web 应用需要更好的组织.在大型应用中,ASP.NET MVC(和 Core MVC)所用的默认组织结构开始成为你的负累.你可以使用两种简单的技术来更新组织方法并及时 ...

  3. 使用 ASP.NET Core MVC 创建 Web API(一)

    从今天开始来学习如何在 ASP.NET Core 中构建 Web API 以及每项功能的最佳适用场景.关于此次示例的数据库创建请参考<学习ASP.NET Core Razor 编程系列一> ...

  4. ASP.NET Core MVC 授权的扩展:自定义 Authorize Attribute 和 IApplicationModelProvide

    一.概述 ASP.NET Core MVC 提供了基于角色( Role ).声明( Chaim ) 和策略 ( Policy ) 等的授权方式.在实际应用中,可能采用部门( Department , ...

  5. ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)分部视图简介 ASP.NET Core MVC (Razor)分部视图基础教程 ASP.NET Core MVC (Raz ...

  6. ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC 视图引擎(Razor)简介 ASP.NET Core MVC 视图(Razor)ViewData使用示例 ASP.NET Core MV ...

  7. ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    一.前言 1.本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET C ...

  8. ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

    一.前言 1.本文主要内容 ASP.NET Core MVC路由工作原理概述 ASP.NET Core MVC带路径参数的路由示例 ASP.NET Core MVC固定前/后缀的路由示例 ASP.NE ...

  9. Pro ASP.Net Core MVC 6th 第四章

    第四章 C# 关键特征 在本章中,我描述了Web应用程序开发中使用的C#特征,这些特征尚未被广泛理解或经常引起混淆. 这不是关于C#的书,但是,我仅为每个特征提供一个简单的例子,以便您可以按照本书其余 ...

  10. Pro ASP.NET Core MVC 6th 第三章

    第三章 MVC 模式,项目和约定 在深入了解ASP.NET Core MVC的细节之前,我想确保您熟悉MVC设计模式背后的思路以及将其转换为ASP.NET Core MVC项目的方式. 您可能已经了解 ...

随机推荐

  1. 关于java数据库章节connection连接不成功的时候!!!

    无图,因为忘了截图.但是网上很多说法: 异常那个地方最先是说连接失败的,原因很简单,没有安装Mysql数据库!!!安装了之后出示没有密码,所以程序里面的地方也不要有密码. 然后运行就成功了.相关的安装 ...

  2. js的call() ,apply() 两种方法的区别和用法,最白话文的解释,让枯燥滚粗!

    百度了一圈calll()函数和apply()函数,感觉还是糊里糊涂 正好我前几天刚又重新翻了一遍 那本 600多页 的圣经书,我习惯时不时的去打下基础,只是为了用来装逼,给人讲解....(我是有多蛋疼 ...

  3. 使用duilib开发简单的Window安装包

    一.具体思路 安装过程:安装包的制作包括资源文件的打包,资源文件打包到安装包exe中,安装的时候需要从exe中提取出对应的资源文件, 然后解压文件安装到指定目录,然后就是对安装的可执行程序进行注册表的 ...

  4. CLR类型设计之类型之常量和字段

             前言 孔子说:温故而知新,可以为师矣.所以对于学习过的知识要多复习,并且每一次复习都要尽可能的去扩展,而不是书本上的几句理论知识.很多人都喜欢分享自己的学习内容,记录下生活的点点滴滴 ...

  5. 后端自动化版本管理,再也不用改URL了!

    每次升级接口版本时,后端.前端.客户端都是痛苦的: 后端:要兼容旧版客户端,以前的接口不能动啊,又得写新接口.新文档了,唉! 前端:还好,就是版本号到处都是,改起来比较烦. Android:快点啊产品 ...

  6. 一个高性能异步socket封装库的实现思路 (c#)

    前言 socket是软件之间通讯最常用的一种方式.c#实现socket通讯有很多中方法,其中效率最高就是异步通讯. 异步通讯实际是利用windows完成端口(IOCP)来处理的,关于完成端口实现原理, ...

  7. params SqlParameter[] commandParameters(转)

    C#代码  ExecuteReader(string connectionString, CommandType commandType, string commandText, params Sql ...

  8. 谈谈form-data请求格式

    最近一直都比较忙,坚持月月更新博客的计划不得中止了,今天好不容易抽出点时间来说说最近项目中遇到的一个问题,有关request post请求格式中的multipart/form-data格式. 引言 最 ...

  9. nginx反向代理node.js获取客户端IP

    使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1 如果想要拿到真实的客户端IP改怎么办呢? 一.首先配置Nginx的反向代理 proxy ...

  10. Python基础学习-'module' object has no attribute 'urlopen'解决方法

    import numpy as npimport urlliburl = "http://archive.ics.uci.edu/ml/machine-learning-databases/ ...