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

      

  • 相关阅读:
    Napa简介——基于Web用于Outlook/SharePoint的IDE
    Azul开源Zing Jvm
    如何控制单元测试的粒度?
    存储过程与Entity Framework
    Java增强的for循环和普通for循环对比
    Java中的static变量、方法、代码块初始化执行顺序
    推荐一款好用的博客软件——菊子曰
    Android进程与线程
    OPhone SDK
    开始学习Android
  • 原文地址:https://www.cnblogs.com/wangjieas/p/wangjieas.html
Copyright © 2011-2022 走看看