zoukankan      html  css  js  c++  java
  • 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是一个高度层次化的框架,配置文件+工厂模式的编程方式贯穿于其中,所以基本上各个层次都可以进行重写,上面只是我觉得值得切入与重写的地方。

      

  • 相关阅读:
    包和常用内置模块(二)
    常用内置模块(一)
    正则表达式和re模块
    迭代器和生成器
    函数(四)
    函数(三)闭包函数与装饰器
    Codeforces Round #539 (Div. 2) D 思维
    Codeforces Round #539 (Div. 2) 异或 + dp
    Codeforces Round #546 (Div. 2) E 推公式 + 线段树
    牛客练习赛42 C 反着计算贡献
  • 原文地址:https://www.cnblogs.com/wangjieas/p/wangjieas.html
Copyright © 2011-2022 走看看