【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 CORE 源码地址
- ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作
- ASP.NET Core 2.0 MVC 发布部署--------- SUSE 16 Linux Enterprise Server 12 SP2 X64 具体操作
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
- ASP.NET web.config中<customErrors>节点说明
- Win7旗舰版中的IIS配置asp.net的运行环境
- asp.net core 读取Appsettings.json 配置文件
- [Fine Uploader] 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
- ASP.NET MVC动作过滤器
- ASP.NET MVC - The view must derive from WebViewPage, or WebViewPage<TModel>
- ASP.NET Core 6框架揭秘实例演示[02]:基于路由、MVC和gRPC的应用开发
- ASP.NET Core路由中间件[2]: 路由模式
- ASP.NET Core管道详解[5]: ASP.NET Core应用是如何启动的?[上篇]
- [ASP.NET Core 3框架揭秘]服务承载系统[6]: 承载服务启动流程[下篇]
- [ASP.NET Core 3框架揭秘] Options[5]: 依赖注入
- ASP.NET Core真实管道详解[1]:中间件是个什么东西?
- ASP.NET Web Forms - 维持 ViewState
- ASP.NET MVC - SQL 数据库
- ASP.NET MVC (一、控制器与视图)
- ASP.NET 使用Ajax
- ASP.NET Core MVC 之过滤器(Filter)
- ASP.NET MVC (二、数据传递)