ASP.NET MVC Pipeline: Routing

Hace ya un tiempo que no escribo sobre el “tradicional” ASP.NET MVC y justamente la otra vez me cruce con esta excelente entrada en DotNet Tricks que me motivo a escribir sobre un tema que siempre posponía: el pipeline de ASP.NET MVC y sus puntos de extensión.

En esta primer entrega vamos hablar sobre la etapa de routing del pipeline, con una breve descripción de la función que cumple y las diferentes formas en que podemos extenderlo. En próximas entregas vamos a ir hablando de las siguientes faces: “Controller Initialization”, “Action Execution”, “Result Execution” y “View Initialization & Rendering”.

Routing

Routing

Routing

Esta es la primer etapa del pipeline y su función se centra en determinar quien será el encargado de manejar la petición.

Como ya todos saben el framework ASP.NET MVC nos provee de un motor de enrutamiento – routing engine – que se encarga de parsear la URL del request entrante y luego de machearla/mapearla contra alguna de las rutas – routes – almacenadas en la tabla de enrutamiento – route table –. A partir de la ruta coincidente podremos determinar que handler será el encargo de manejar la petición – el comportamiento por defecto es determinar el controlador y acción que deben ser invocados – pero como veremos más adelante podemos extendernos en este punto.

Sigue leyendo