asp.net mvc框架的一些切入点
IhttpModule+配置文件,对请求进行进一步的整理、过滤与转发;
global文件中以Application_xx的保护方法进行切入的方式,此方法等同于IHttpModule方法。IHttpModule是它的模块化包装,可重用;
IHttpHandler[+配置文件],.ashx/.axd+配置文件,对某类特殊的要求进行专门的处理,略去了routeHander->mvcHandler->controller->action->view这一串基于反射的低效率的执行过程,不过web服务器的瓶颈一般不在计算,而在IO;看到过的例子有用.ashx实现基于长连接轮询等;
Route层次的重写,即对Route,RouteHandler,mvcHandler这三个具体的类进行的重写,自定义自己的路由查找逻辑,来进行定制化的url处理,这类做法的我看到的很少,就看到过两个例子,一个例子是园子里面曾经有过一片文章,通过重写route来实现对xx.域名.com的区别处理(比如sports.sina.com,news.sina.com),还有一个就是routeDebugger,一个用来对route进行分析的组件,切入的借口在于RouteTable.routes;
然后就是controller与action层次,虽然这两个类也可以重写,但是一般都是通过自定义过滤器来对它们进行控制,mvc框架中的过滤器的层次与种类基本覆盖了所有的需求,选择合适的粒度的过滤器进行重写即可;
再次便是viewEngine与view的重写,这类例子实际应用中我还没有看到过,因为重写模版引擎是一件很费力不讨好的事情,razor引擎已经足够优秀,不需要去再造个轮子,切入口在于ViewEngines.Engines;
asp.net mvc是一个高度层次化的框架,配置文件+工厂模式的编程方式贯穿于其中,所以基本上各个层次都可以进行重写,上面只是我觉得值得切入与重写的地方。
asp.net mvc框架的一些切入点的更多相关文章
- 写自己的ASP.NET MVC框架(上)
http://www.cnblogs.com/fish-li/archive/2012/02/12/2348395.html 阅读目录 开始 ASP.NET程序的几种开发方式 介绍我的MVC框架 我的 ...
- 学习“迷你ASP.NET MVC框架”后的小结
看蒋老师MVC的书第二个大收获可以是算是看了这个迷你ASP.NET MVC框架了,虽然它远不如真正ASP.NET MVC(下文简称“MVC”)那么复杂庞大,但在迷你版中绕来绕去也够呛的.这部分我看了几 ...
- 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图
如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?
- BrnShop开源网上商城第二讲:ASP.NET MVC框架
在团队设计BrnShop的web项目之初,我们碰到了两个问题,第一个是数据的复用和传递,第二个是大mvc框架和小mvc框架的选择.下面我依次来说明下. 首先是数据的复用和传递:对于BrnShop的每一 ...
- ASP.NET MVC框架开发系列课程 (webcast视频下载)
课程讲师: 赵劼 MSDN特邀讲师 赵劼(网名“老赵”.英文名“Jeffrey Zhao”,技术博客为http://jeffreyzhao.cnblogs.com),微软最有价值专家(ASP.NET ...
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
KnockOutJS学习系列----(一) 好几个月没去写博客了,最近也是因为项目紧张,不过这个不是借口,J. 很多时候可能是因为事情一多,然后没法静下来心来去写点东西,学点东西. 也很抱歉,突然看到 ...
- 【工作笔记二】ASP.NET MVC框架下使用MVVM模式
ASP.NET MVC框架下使用MVVM模式 原文:http://www.cnblogs.com/n-pei/archive/2011/07/21/2113022.html 对于asp.net mvc ...
- Spring.Net+Nhibernate+Asp.Net Mvc 框架
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的环境 使用这套框架不是很长时间.但也基本应用了几个项目中了.在此和大家分享一下我是怎样一步一步搭建此框架 ...
- asp.net MVC 框架中控制器里使用Newtonsoft.Json对前端传过来的字符串进行解析
下面我用一个实例来和大家分享一下我的经验,asp.net MVC 框架中控制器里使用Newtonsoft.Json对前端传过来的字符串进行解析. using Newtonsoft.Json; usin ...
随机推荐
- Android Permission denied 错误 ( 附Android权限大全 )
Android Permission denied 错误(附Android权限大全) java.net.SocketException: Permission denied (maybe missin ...
- ThinkPHP神秘应用架构扩展
ThinkPHP应用模式提供了机会,改变核心框架.它可以让你的应用程序,以适应环境和其他许多不同的需求. 每一个应用模式都有自己的模式定义文件,相对与ThinkPHP3.1版本号.ThinkPHP3. ...
- 多线程学习之三生产者消费者模式Guarded Suspension
Guarded Suspension[生产消费者模式] 一:guarded suspension的参与者--->guardedObject(被防卫)参与者 1.1该 ...
- JavaScript时间工具类
/** * JavaScript日期工具类 * @author ZhangLp */ /** * 获取当前月的第一天 */ function getCurrentMonthFirst(){ var d ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
- oracle中的DECODE
原文:oracle中的DECODE DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶 ...
- CSS学习笔记:利用border绘制三角形
在前端的笔试.面试过程中,经常会出现一些不规则图形的CSS设置,基本上多是矩形外加一个三角形.利用CSS属性可以实现三角形的生成,主要利用上下左右的边距的折叠. 1.第一种图形: .box { wid ...
- 小公司免费的ERP软件
http://www.2bizbox.cn/ https://www.odoo.com/
- Ubuntu加上一个命令搜索路径/etc/ environment
编辑~/.bashrc文件,然后在最后加上你想设置的目录就可以了. 这样做之后就可以在终端中执行你想要的程序了,不过如果你使用其它程序在后台调用的话可能还是会调用不到,因为这个设置是针对bash有效的 ...
- JJG 623-2005 电阻应变仪计量检定规程
JJG 623-2005 电阻应变仪计量检定规程 点击下载 JJG533-2007标准模拟应变量校准器检定规程 点击下载 JJG 533-1988标准(里面含有一些更具体的电路图供参考)