Upload
stacy-vicknair
View
526
Download
2
Embed Size (px)
DESCRIPTION
ASP.NET Routing gives us the ability to forge our own paths towards a more expressive search friendly web. In this presentation we’ll take a look at the ins and outs of ASP.NET Routing as it is used in ASP.NET MVC and how to customize your web routes to your tailored needs.
Citation preview
ASP.NET Routing with MVC Deep Dive
2
About Me
Stacy Vicknair, MVP MCPDDevelopment Consultant for Sparkhound
Blog - http://www.wtfnext.comBRAG - http://www.braglunch.comTM - http://www.batonrougespeaks.com
Twitter: @svicknEmail: [email protected]
3
Agenda
− What is routing? − Out of the box ASP.NET MVC routing
− Demo− Customizing ASP.NET MVC routing
− Demo: RouteConstraints and Routes− Routing concerns
4
What is ASP.NET Routing?
“ASP.NET routing enables you to use URLs that do not have to map to specific files in a Web site.”
- http://msdn.microsoft.com/en-us/library/cc668201.aspx
www.mysite.com/categories.aspx?categoryName=sports
www.mysite.com/categories/sports
5
HttpModules and HttpHandlers
Http Module 1
Http Module 2
Http Module 3
Http Handler
Http Handler
Http Handler
6
ASP.NET Routing (System.Web.Routing)
UrlRoutingModuleIHttpModule
PageRouteHandlerIRouteHandler
UrlRoutingHandlerIHttpHandler
Content (Page, etc.)
7
DefaultControllerFactoryIControllerFactory
ASP.NET MVC Routing (System.Web.Mvc)
UrlRoutingModuleIHttpModule
MvcRouteHandlerIRouteHandler
MvcHandlerUrlRoutingHandler
MyController.Execute()Controller
8
Out of the box MVC Routing
− Routes.IgnoreRoute()− System.Web.Routing.StopRoutingHandler
− Routes.MapRoute()− System.Web.Mvc.RouteCollectionExtensions− Parameters
− string name – “MyUniqueName”− string url – “{controller}/{action}/{id}”− Object defaults - new { controller = "Home", action = "Index”} − Object constraints – new {id = “[0-9]+”}− string[] namespaces - new[] { "Myproject.MyControllers"}
9
DEMO – Out of the box MVC Routing
10
Customizing ASP.NET MVC Routing
− Three main areas for routing customization− RouteConstraints
− Implementing constraints that require more logic than RegEx− Created by implementing System.Web.Routing.IRouteConstraint
− Routes− Allow for control over how route data is parsed or route paths
are determined− Created by subclassing System.Web.Routing.RouteBase− Default is Route ex. RouteCollection.Add(new Route(…))
− RouteHandlers− Allow for preprocessing before default RouteHandler behavior
− ex. RouteData modifications
11
DEMO – RouteConstraints and Routes
12
Routing Concerns
− IIS6 requires special attention− Add .mvc extension to aspnet_isapi.dll in ISAPI mapping− “{controller}.mvc/{action}/{id}”− Can use wildcard mapping, but performance is
questionable
13
Agenda
− What is routing? − Out of the box ASP.NET MVC routing
− Demo− Customizing ASP.NET MVC routing
− Demo: RouteConstraints and Routes− Routing concerns
14
Helpful Links
Google or Bing: ASP.NET Routing
http://www.15seconds.com/Issue/020417.htmhttp://msdn.microsoft.com/en-us/library/
cc668201.aspxhttp://blogs.msdn.com/b/alikl/archive/2009/04/02/
how-asp-net-mvc-works-for-aspiring-architects-2.aspx
http://blog.didsburydesign.com/2010/02/how-to-allow-hyphens-in-urls-using-asp-net-mvc-2/
http://stackoverflow.com/questions/1107507/asp-net-mvc-custom-route-handler-constraint
15
About Me
Stacy Vicknair, MVP MCPDDevelopment Consultant for Sparkhound
Blog - http://www.wtfnext.comBRAG - http://www.braglunch.comTM - http://www.batonrougespeaks.com
Twitter: @svicknEmail: [email protected]