• ASP.NET MVC4学习笔记之总体概述


      断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去.

      这篇文章大体介绍ASP.NET MVC的基本架构,帮助你快速理解该框架的工作原理。关于MVC模式的介绍已经是汗牛充栋了,这里就不再赘述了。ASP.NET MVC 是基于原有ASP.NET运行时,ASP.NET运行时采用通道过滤器模式,可以高度的扩展。如下图所示:

       

    图中Module相当于IHttpModule,Handler类似于IHttpHandler, 整个asp.net web应用程序的容器是HttpAppliction, HttpApplication是个重量级的对象,为了保证性能,采用了对象池设计,具体的请查阅相关的资料。IHttpModule通过HttpApplication的事件注册到相应的处理阶段,下图是主要的事件流程如下图:

    ASP.NET MVC就是通过其UrlRouteModule 注册HttpApplication的PostResolveRequestCache事件,拦截http请求进入MVC框架处理体系.

    ASP.NET MVC的总体架构如下:

      

    大致的处理过程描述如下:

    1.当http请求到达Url路由模块时,路由模块检查url是否与定义的路由规则匹配,如果匹配,则获取定义路由时确定的路
    由处理器( IRouteHandler),进一步获取MVCHttpHandler并reMap为当前请求的IHttpHandler,由此开始真正进入MVC框架处
    理体系。如果不匹配,则没MVC什么事,走原来的ASP.NET框架处理流程
    2.MVCHandler利用第一步获取的路由数据,传给ControllerBuilder以激活相应的Controller,并执行Controller
    3.Controller实列化ActionInvoker,使用ActionInvoker执行相应的Action
    4.Action内就是自定义业务逻辑处理,执行完逻辑处理后返回ViewModel, 实例化ActionResult并传递ViewModel
    5.执行AcionResult返回html/json/xml等等

    更精确的组件交互图如下:

    后续章节将详细分析各组件应用及其实现.。

       总结一下,个人觉得ASP.NET MVC是一个优秀的Web框架,相比与WebForm的模拟事件编程,MVC还原了Web编程的本来面貌,一个Web请求对应相关Controller的Action,类似一个方法调用。ASP.NET MVC的View基于html模板引擎,手写html更加友好。

  • 相关阅读:
    Lucence_Curd
    Lucence
    SpringMvc文件上传
    SpringMvc接收参数
    出现No qualifying bean of type [com.*.*.dao.InfoDao] found for :错误
    内连接、左外连接、右外连接、交叉连接区别
    html基础
    Java基础阶段综合练习
    java基础MySQL
    java基础IO删除文件夹文件
  • 原文地址:https://www.cnblogs.com/jjyjjyjjy/p/3583363.html
Copyright © 2020-2023  润新知