惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 十三

ASP.NET MVC5学习笔记之Action参数模型绑定之模型元数据和元数据提供 ASP.NET MVC5学习笔记之Action参数模型绑定值提供体系 ASP.NET MVC5学习笔记之Action参数模型绑定基本过程 ASP.NET MVC5学习笔记之Filter提供体系 ASP.NET MVC5学习笔记之Filter基本介绍 ASP.NET MVC5学习笔记之Controller执行ControllerDescriptor和ActionDescriptor ASP.NET MVC5学习笔记之Controller同步执行架构分析 ASP.NET MVC4学习笔记之Controller激活的扩展 ASP.NET MVC4学习笔记之Controller的激活 ASP.NET MVC4学习笔记路由系统实现 ASP.NET MVC4学习笔记路由系统概念与应用篇 Web Capacity Analysis Tool 压力测试工具使用笔记 WCF完全解析读书笔记第2章地址 CLR via C# 混合线程同步构造 CLR via C# I/O基元线程同步构造 CLR via C# 计算限制的异步操作读书笔记 CLR via C# 线程基础知识读书笔记 CLR via C# 序列化读书笔记 CLR via C# 内存管理读书记
ASP.NET MVC4学习笔记之总体概述
十三 · 2014-03-06 · via 博客园 - 十三

  断断续续使用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更加友好。