Go to file
Ryan Nowak d4b96b27c0 Optimize RouteValueDictionary, expose concrete type
This change optimizes allocations by RouteValueDictionary based on usage.

First, implement a struct Enumerator, and expose the concrete RVD type
from all extensibility points. We wanted to try and decouple this code
from RVD originally and use IDictionary everywhere. After doing that we've
found that it allocates an unacceptable number of enumerators.

Secondly, optimize copies of RVD for the case where you're copying an RVC
to another (common case). When doing this we can copy the count to get the
right capacity, and copy the entries without allocating an enumerator.

Lastly, optimize RVD for the case where it's a wrapper around a poco
object. We 'upgrade' to a writable full dictionary if you try to write to
it, or call one of a number of APIs that are uncommonly used. We could
produce optimized versions of things like `Keys` and `CopyTo` if necessary
in the future.
2015-11-25 09:49:10 -08:00
samples/RoutingSample.Web Renaming Microsoft.Framework.* -> Microsoft.Extensions.* 2015-10-03 15:44:48 -07:00
src Optimize RouteValueDictionary, expose concrete type 2015-11-25 09:49:10 -08:00
test Optimize RouteValueDictionary, expose concrete type 2015-11-25 09:49:10 -08:00
tools Strong name everything. 2015-11-03 12:18:03 -08:00
.gitattributes
.gitignore
.travis.yml Move Travis to supported Linux distribution 2015-11-17 14:26:37 -08:00
CONTRIBUTING.md
LICENSE.txt
NuGet.config Updating to release NuGet.config. 2015-10-28 12:43:08 -07:00
NuGetPackageVerifier.json Moved AttributeRouting from MVC 2015-11-17 12:03:12 -08:00
README.md Add AppVeyor, Travis build status 2015-06-23 07:28:53 +03:00
Routing.sln Moved AttributeRouting from MVC 2015-11-17 12:03:12 -08:00
Settings.StyleCop
appveyor.yml
build.cmd Fix local build break 2015-10-12 13:01:49 -07:00
build.sh React to aspnet/Universe#290 fix 2015-10-10 20:03:10 -07:00
global.json
makefile.shade Running xml-docs-test before test target 2015-09-18 12:29:43 -07:00

README.md

ASP.NET Routing

AppVeyor: AppVeyor

Travis: Travis

Contains routing middleware for routing requests to application logic.

This project is part of ASP.NET 5. You can find samples, documentation and getting started instructions for ASP.NET 5 at the Home repo.