Commit Graph

478 Commits

Author SHA1 Message Date
Jass Bagga 57697baedb
Tolerate leading "~/" or "/" (#509) 2018-01-11 13:00:01 -08:00
Jass Bagga 93d20ec78c
Revert Dispatcher changes (#508)
Addresses aspnet/Home#2741
2018-01-10 12:53:17 -08:00
Jass Bagga 8502900c18
Add Dispatcher packages descriptions (#507)
Addresses aspnet/Home#2656
2018-01-04 11:02:05 -08:00
Jass Bagga c66d5240d1
Recreate cache of endpoints when data source updated (#503)
Addresses #454
2018-01-03 14:33:16 -08:00
Jass Bagga 54e96bd404
Tolerate leading "~/" or "/" (#499)
Addresses #441
2017-11-21 14:20:17 -08:00
Jass Bagga 1b0258ab8f
Move AddEntryToTree to shared source (#496)
Addresses #495
2017-11-20 14:18:50 -08:00
Jass Bagga e2bcefc3d0
Move TreeEnumerator to shared source (#494) 2017-11-15 11:17:59 -08:00
Jass Bagga 7f8ba171f4
Move UrlMatchingTree to shared source (#492)
Addresses #489
2017-11-13 11:40:26 -08:00
Nate McMaster 6c8af17e3a
Add placeholder package descriptions to fix NuGetPackageVerifier errors (#490)
Merged to unblock CI. cref #491 to update the packages with tags and real package descriptions
2017-11-08 09:43:55 -08:00
Jass Bagga fd83b300b8
Port TreeMatcher (#488)
Addresses #472
2017-11-07 10:51:50 -08:00
Jass Bagga 3fadca6a1b
Add IConstraintFactory (#487)
Addresses part of #472
2017-11-02 10:57:37 -07:00
Nate McMaster f4fb178f55 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 16:32:09 -07:00
Ryan Nowak bb413c6ac3 Rename a bunch of old stuff 2017-10-26 12:35:58 -07:00
Ryan Nowak 81ddda7b96 Add MetadataCollection 2017-10-26 12:35:58 -07:00
Ryan Nowak 812fa9599a Reorganize some folders 2017-10-26 12:35:58 -07:00
Ryan Nowak ddcc409353 Move some files in/out of abstractions 2017-10-26 12:35:58 -07:00
Ryan Nowak d612072d1a Fix a broken MVC test 2017-10-25 23:29:35 -07:00
Ryan Nowak 736b49294d Add Template abstraction
This change adds the Template as a top level abstraction. URL templating
is now a two-stage process.

First you use a 'key' to look up a Template, then you use the Template
to create the URL.

This change also has some cleanup of the way RoutePatternBinder gets
instantiated. I added a factory service so that most of the complex
things can be made internal to Dispatcher. Now it's much easier to
constuct and use. These impacts some pubternal APIs that we already
broke, but makes them actually nice :)

Also cleaned up some tests and fixed one that was broken and not
running.
2017-10-25 22:15:24 -07:00
Ryan Nowak 2d661396df Port TemplateBinder to dispatcher 2017-10-25 14:28:20 -07:00
Jass Bagga eebc7db2ca Use RoutePatternMatcher logic in TemplateMatcher (#484) 2017-10-25 14:16:04 -07:00
Jass Bagga 485278bf0d Add RoutePatternMatcher to Dispatcher (#482) 2017-10-23 11:20:23 -07:00
Ryan Nowak bd517f891f Support conversions from RouteTemplate -> RoutePattern 2017-10-20 16:58:14 -07:00
Ryan Nowak df78db934d Port IRouteConstraint to the dispatcher project 2017-10-20 14:04:22 -07:00
Jass Bagga fdc5f21428 Port PathTokenizer (#478) 2017-10-20 13:24:00 -07:00
Ryan Nowak 08a64048da Redesign public API for templates
-Renamed RouteTemplate -> RoutePattern
-Made immutable
-Added Builder
-Lots of fixes to parser to support new design

There are a few small issues logged for follow-up but this is mostly in
the place I want it design-wise.
2017-10-19 09:41:45 -07:00
George Chakhidze a3c1b6d033 Avoid allocation of a new char array on every request in RouteCollection class
This is a very small micro-optimization: When LowercaseUrls and/or AppendTrailingSlash
options are enabled, on every call to RouteCollection.NormalizeVirtualPath a new
char[] { '?', '#' } is being allocated.
2017-10-17 17:45:15 -07:00
Jass Bagga 3a5cd6dd25 Port TemplateParser to Dispatcher project (#473)
Addresses #466
2017-10-17 11:52:26 -07:00
Ryan Nowak 927f8ed3d2 Add empty baselines for dispatcher
These packages didn't exist in 2.0 so there's no compat bar.
2017-10-17 10:46:03 -07:00
Jass Bagga bdbe922b22 Add logging (#467)
Addresses #439
2017-10-12 14:23:01 -07:00
Ryan Nowak 56ae2e0177 Respond to feedback about handler factory
- Handler factories are now associated with the dispatcher entry
- Handler factory is now an interface
2017-10-06 10:11:05 -07:00
Ryan Nowak 63d2cc4637 Changes due to davidfowl feedback
Changed dispatchers to IMatcher, added a context.

Removed a bunch of outdated cruft and updated the sample to use
attribute-routing like entries.
2017-10-05 18:31:23 -07:00
Jass Bagga 2f8951e244 Productize HttpMethodEndpointSelector (#463)
Addresses #452
2017-10-05 15:14:17 -07:00
Jass Bagga f49cbd1b25 Selectors initialization and DispatcherBase logging (#451) 2017-09-29 17:50:45 -07:00
Ryan Nowak abb41302e9 Add a dispatcher by default (#462)
This change adds the TreeDispatcher by default to the pipeline. You can
register DispatcherDataSource instances to configure it.
2017-09-29 16:06:38 -07:00
Ryan Nowak bd750ad76d Making endpoints and addresses easier
This makes endpoints and addresses easier to work with by dropping the
'metadata first' approach for the the things that are really at the core
of the dispatcher.
2017-09-28 22:07:32 -07:00
Ryan Nowak 5fed462123 Add tree dispatcher 2017-09-27 14:34:09 -07:00
Ryan Nowak eeebefee1b Add data source 2017-09-26 10:17:48 -07:00
Ryan Nowak 7685e17e80 Add Addresses and link generation 2017-09-24 23:16:34 -07:00
Javier Calvarro Nelson 475712d613 Update API Check baselines 2017-09-22 14:16:39 -07:00
Ryan Nowak 41f26dc69d Add endpoint disambiguation
- Better sample of metadata
- Sample shows how conventional routing would work
- Added endpoint disambiguation
2017-09-22 10:54:20 -07:00
Ryan Nowak d652b86852 Split RVD in twain 2017-09-21 09:19:10 -07:00
Ryan Nowak 134096d9cb Relayer implementation
This refactor introduces two major changes

1. Now creating the 'handler' delegate happens inside the endpoint
middleware. This allows you to short circuit even harder, AND to create
endpoint funcs that capture and use 'next' to rejoin the middleware
pipeline.

2. Relayered the implementation to have routing plug into the dispatcher.
It wasn't immediately apparent to me that this was the right thing to do,
but I think we will need to do things this way to deliver the kind of
back-compat experience we need to do.

The idea that I have is that 'attribute routing' will be the 'default'
entry in the dispatcher. Adding additional conventional routes or other
IRouter-based extensibility will be possible through adapters - but the
default experience will be to add items to the 'attribute route'.

So. We will need to port the attribute routing infrastructure to the
dispatcher library.

We may also need to make RVD into a subclass of something in the
dispatcher assembly.
2017-09-17 18:29:22 -07:00
Jass Bagga b01072eb47 Use RouteTemplate and TemplateMatcher (#443)
Addresses #438
2017-09-14 15:24:40 -07:00
Jass Bagga a9b47f6722 Startup experience (#442)
Addresses #437 and #440
2017-09-11 15:10:33 -07:00
Jass Bagga ebd0baa458 Add dispatcher packages 2017-08-31 11:54:27 -07:00
Nate McMaster e67d85d30c Use PackageLineup to manage PackageReference versions 2017-08-29 11:31:54 -07:00
Nate McMaster 44f9a7083b Use Directory.Build.props/targets 2017-08-29 11:30:03 -07:00
Pranav K a23f1601fd Remove usage of TaskCache 2017-06-08 09:06:41 -07:00
Ryan Nowak d39305aa91 Improve formatting 2017-05-24 08:36:24 -07:00
Ryan Nowak 1165a1de33 Updates to generated resource files 2017-05-24 08:32:15 -07:00
Joonas Westlin 9a6cb89b8d Adjusted example error message to reflect the situation that causes the error. 2017-05-24 08:23:20 -07:00
Joonas Westlin a18f59ab88 Changed expected exception message to the one defined in Resources.resx.
Removed the Debug.Assert as that caused the test runner to crash as in
this case the preceding part is not a literal.
Fixes the test runner crash.
2017-05-24 08:23:20 -07:00
Ryan Brandenburg efb097ce60 Target .NET Standard 2.0 and add net461 testing 2017-05-23 14:38:36 -07:00
John Luo 1f3b20e177 Migration 2017-05-05 17:54:49 -07:00
Pranav K ce021a888e Change TFM to netcoreapp2.0 2017-05-05 09:49:42 -07:00
Ryan Nowak 232b73a151 Fix aspnet/Mvc#6218
This fixes the case described in the comments in TemplateBinder.

This case is much more common for pages which is why we're only seeing it
now. We've had this issue for all of 1.0.0 in both conventional and
attribute routing.
2017-04-28 17:00:35 -07:00
Smit Patel 0aebdb4110 Update API Check related files
React to aspnet/BuildTools#238
2017-04-25 08:19:04 -07:00
Steve Sanderson 8c58086030 Make TreeRouter restore RouteData snapshots consistently. Fixes #394. 2017-04-11 15:36:34 +01:00
Pranav K 1ef45e64b8 Update to net46 2017-03-22 18:26:48 -07:00
Nate McMaster 101764328b Consolidate dependency versions to one file and remove workarounds 2017-03-15 17:01:10 -07:00
Pranav K 0f4ce625ed Update to VS 2017 RC3 2017-01-27 11:04:42 -08:00
Kiran Challa 755d436840 Fixed error message related to escaping curly braces. 2017-01-03 14:33:36 -08:00
Kiran Challa 071b616178 Merge branch 'rel/1.1.1' into dev
# Conflicts:
#	NuGet.config
#	samples/RoutingSample.Web/project.json
#	src/Microsoft.AspNetCore.Routing.Abstractions/project.json
#	src/Microsoft.AspNetCore.Routing.DecisionTree.Sources/project.json
#	src/Microsoft.AspNetCore.Routing/project.json
#	test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests/project.json
#	test/Microsoft.AspNetCore.Routing.DecisionTree.Sources.Tests/project.json
#	test/Microsoft.AspNetCore.Routing.FunctionalTests/project.json
#	test/Microsoft.AspNetCore.Routing.Tests/project.json
2017-01-03 13:33:26 -08:00
Kiran Challa 4bfd663c45 [Fixes #370] Raw route values should be restored after template binder failing binding values when generating a url
- Reverted changes made in commit: 1c9a54aeb8
2017-01-03 13:23:36 -08:00
Pranav K ce525150ab Updating to 4.4 CoreFx packages 2016-12-21 22:55:19 -08:00
Ajay Bhargav Baaskaran c5b7a3f710 Fixed a policheck violation 2016-12-21 11:05:09 -08:00
Kiran Challa 20967cfa76 [Fixes #367] Add extensions on WebHostBuilder for super simple HTTP service application building 2016-12-21 10:04:02 -08:00
Nate McMaster 45247e4d9c Update Microsoft.AspNetCore.Routing.DecisionTree.Sources to use contentFiles 2016-12-15 17:54:10 -08:00
Pranav K a457be5386 Pinning missed tools and dependencies 2016-11-18 12:42:03 -08:00
Pranav K 3db35194c9 Pinning versions for 1.1.0 release 2016-11-18 12:13:32 -08:00
Pranav K d3c145cbe8 Updating versions to 1.2.0-* 2016-11-09 14:19:24 -08:00
jacalvar 54dfea2633 Created public API baselines 2016-11-07 10:55:04 -08:00
Pranav K 67d0c13815 Updating partner package versions 2016-10-03 20:00:38 -07:00
jacalvar 74a3063c45 [Fixes #357] Fix behavior when optional parameters are defined within a route and not at the end 2016-10-03 19:31:17 -07:00
jacalvar 438ec83227 [Fixes #359] Routing is matching empty segments to parameters and defaults are wrong 2016-10-03 15:34:04 -07:00
Pavel Krymets 032bcf43b2 Use TaskCache class from Microsoft.Extensions.TaskCache.Sources (#361)
Instead of Task.FromResult(0)
2016-09-08 09:25:44 -07:00
Kiran Challa 56b3fb9b6f [Fixes #351] Error message incorrectly references RouteCollection when you don't set the default handler on RouteBuilder 2016-08-30 11:16:35 -07:00
Kiran Challa 714c3d6659 [Fixes #4991] Misleading MissingMethodException message for incorrect routes 2016-08-10 12:09:28 -07:00
Ivano Scifoni 88de3d5070 StringRouteConstraint implementation 2016-08-04 10:39:53 -07:00
Ajay Bhargav Baaskaran dde24fbba0 Optimize ListStorage in RouteValueDictionary 2016-07-18 17:31:50 -07:00
mnltejaswini 6801715daf Add support for IEnumerable<KeyValuePair<string, string>> in RouteValueDictionary Fixes #329 (#335) 2016-07-18 12:12:34 -07:00
Doug Bunting 1bcd01338a One build to rule them all
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:31:06 -07:00
jacalvar 90dc4bc207 [Fixes #324] Default parameters are not taken into account on attribute routing 2016-07-01 16:06:03 -07:00
Ryan Nowak 0978a7dd16 Add some tests, rename misnamed file 2016-07-01 09:29:02 -07:00
Muchiachio 4adc693cb5 Add an UseRouter that takes Action<IRouteBuilder>
- Added an overload of UseRouter that takes Action<IRouteBuilder>, to
make configuring standalone routing much less verbose.

Addresses #332
2016-07-01 08:50:29 -07:00
Muchiachio 322e1f5d9c Make routing feature class public
- Made routing feature class public, to lower boilerplate code in client
code tests.

Addresses #333
2016-06-30 08:58:33 +03:00
Pranav K 2c264efd42 Updating to dev versions 2016-06-16 10:18:32 -07:00
jacalvar dd79d0b88c [Fixes #316] TreeRouter does not match a route with the correct length 2016-06-03 12:55:20 -07:00
John Luo 3222785d3f React to updated CoreCLR packages
https://github.com/aspnet/Coherence/issues/97
2016-05-26 18:32:53 -07:00
Pranav K 1956be42f6 Revert "aspnet/Coherence#97 - React to updated CoreClr packages"
This reverts commit 1d21cecd8d.
2016-05-18 09:44:36 -07:00
Ajay Bhargav Baaskaran 1d21cecd8d aspnet/Coherence#97 - React to updated CoreClr packages 2016-05-17 12:47:17 -07:00
Ryan Nowak 86a41bc618 Optimize manipulation of RouteData.Routers
This change avoid calling List.Clear() and new List(IEnumerable<T>) which
both end up calling into native methods via the Array static class. These
methods are designed to be performant for large collections, and for our
needs this collection has at most 1-4 items. This is worth 2-3% in
techempower plaintext.
2016-05-11 11:20:10 -07:00
Pranav K 74a246d34c Merge branch 'release' into dev 2016-05-02 15:21:04 -07:00
Pranav K 0ce851680b Fix build warnings 2016-05-02 11:27:25 -07:00
Ryan Nowak 96b7678c8f RVD crazy 2016-04-22 14:06:49 -07:00
Ryan Nowak e8ce0e7523 TreeRouter cleanup 2016-04-20 18:12:10 -07:00
Ryan Nowak 9cd3fe34a5 Improve tests for catch-all + defaults/nulls 2016-04-11 15:17:07 -07:00
Ryan Nowak a51c78da06 Remove dictionary alloc in routing
This changes TemplateMatcher to mutate RouteData.Values directly instead
of creating a new dictionary and then merging in values. This is one the
biggest single costs in routing in terms of both allocations and execution
time.

So Match now becomes TryMatch. This will dirty the state of the RVD, so
the caller needs to snapshot it before calling into it (handled
inside the TreeRouter or RouteCollection).

Some subtle changes were needed to how/when values are added to be
compatible with the existing tests. The general idea is that we add null
values for non-parameter defaults or catchalls, but only if they don't
trounce an existing value. This logic used to live in MergeValues but now
it's in TryMatch since TryMatch might be working from existing data.

Also fixed the .sln to avoid building a package that we use as shared
source.
2016-04-08 08:46:00 -07:00
Pranav K fe66fb7f2f Removing imports from src projects 2016-04-08 06:49:12 -07:00
jacalvar 5bcea61743 Return IServiceCollection from AddRouting extension methods 2016-03-28 15:40:58 -07:00
Doug Bunting 39b4f6fe53 An `ObjectPoolProvider` is always registered
- react to aspnet/Hosting/pull#673
2016-03-25 10:08:16 -07:00
Kiran Challa 0c3f6497db Fixes issue of request path segment length greater than the wildcard template route
Fixes https://github.com/aspnet/Mvc/issues/4256
2016-03-23 17:36:07 -07:00
Eilon Lipton d89afcbbf0 Fix package metadata 2016-03-15 14:54:14 -07:00
Nate McMaster c5d8b8d109 Fix incorrect doc comments 2016-03-14 15:29:46 -07:00
Ajay Bhargav Baaskaran 3127e7a2e9 [Fixes #294] Set DefaultHandler in RouteBuilder 2016-03-10 15:25:34 -08:00
Ajay Bhargav Baaskaran 8a59bcff08 Added Company, Copyright and Product attributes to AssemblyInfo 2016-03-03 17:33:09 -08:00
Doug Bunting 27c6d8c665 Remove project name from output path
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 21:06:00 -08:00
N. Taylor Mullen bb7cb4a0d9 Transition to netstandard.
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:37:03 -08:00
mnltejaswini 41e3acf0fa [Perf] Avoid Linq method and save its related allocations in TreeRouter 2016-02-26 15:23:10 -08:00
mnltejaswini 1c9a54aeb8 [Perf] Reduce allocations in Link generation code paths 2016-02-24 17:25:32 -08:00
Kiran Challa 05ff447d7d Fix service collection extensions: New overload having lambda for options, return void and added doc comments. 2016-02-22 11:06:09 -08:00
Ajay Bhargav Baaskaran 3d8dcfac4f Enabled xml doc generation 2016-02-19 14:42:54 -08:00
Pranav K 2e916284cc Reacting to CoreCLR package version changes 2016-02-08 09:33:49 -08:00
N. Taylor Mullen 67d2ec580c Update project.json to remove redundant System.Runtime dependency.
- This package is pulled in transitively.
2016-02-05 17:23:05 -08:00
Ryan Nowak d97947e229 Move routing extensions to .Routing 2016-02-04 09:55:09 -08:00
Ryan Nowak 4b980c8afa Optimize defensive copies where possible 2016-02-03 15:36:42 -08:00
N. Taylor Mullen 70d674410e Rename AspNet 5 file contents.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:24:38 -08:00
N. Taylor Mullen ace4553d77 Rename AspNet 5 folders and files.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:24:31 -08:00
jacalvar 9b217a4026 Fixes [#276] Throw a nicer error when the routing services haven't been added to DI 2016-01-14 15:11:20 -08:00
John Luo c742390a3c Remove redundant AddOptions which is now a default hosting service 2016-01-07 17:45:36 -08:00
ryanbrandenburg b942e96216 * Fix LoggingExtension Naming 2016-01-07 10:03:07 -08:00
ryanbrandenburg 6e8b2ecd63 * Switch to new logging style 2016-01-06 15:07:46 -08:00
Pranav K 739dc7d621 Change the data type of VirtualPathData.VirtualPath
Fixes #270
2016-01-05 11:50:55 -08:00
Ryan Nowak 226cfb1e0d Optimize TemplateMatcher
Replaces a bunch of dictionary operations with indexing into an array by
doing some caching. Also eliminating an enumerator allocation by changing
from IReadOnlyDictionary to RouteValueDictionary.
2016-01-05 10:47:51 -08:00
grehov a61a68defc Add support IEnumerable parameters for query string 2015-12-30 16:07:04 -08:00
Ryan Nowak 33f9bdadef Pool state used to generate URL 2015-12-28 09:27:41 -08:00
Hao Kung a956fe53c1 OptionsModel => Options 2015-12-21 15:54:13 -08:00
Ryan Nowak 1e6ff07ec8 Fix routing service registration 2015-12-18 10:35:57 -08:00
Ryan Nowak 813171a016 Reduce allocation in URL generation
This change optimizes our a per-operation dictionary that really can just
be cached for the whole app's lifetime.
2015-12-18 09:20:52 -08:00
Pranav K 37c167aa74 Adding UrlEncoder to the ServiceCollection 2015-12-17 15:34:10 -08:00
Ajay Bhargav Baaskaran ef0ea537e2 Removed CatchAll and Fallback from DecisionTree 2015-12-16 10:52:53 -08:00
Pranav K 2ab24aa0f4 Remove custom url encoding
Fixes #214
2015-12-16 09:06:49 -08:00
Ryan Nowak cb39589864 Add extension methods for using routing with Middleware 2015-12-14 13:21:50 -08:00
Ryan Nowak cc501bc025 HttpMethodConstraint -> HttpMethodRouteConstraint
This is consistent with other constraint types in routing, and avoids a
naming conflict with MVC.

This is a change **away** from the names used in System.Web and
System.Web.Http.Routing, but it seems worth doing for consistency and
clarity.
2015-12-14 10:10:17 -08:00
Ryan Nowak 604fc6bb54 Fix #248 Add HttpMethodRouteConstraint
Constraint code ported from WebAPI2. Tests are new.

Also a bunch of misc cleanup for constraints.
- Move IRouteConstraint to abstractions
- Fix namespace of a constraint
- Some general style cleanup
- use RouteValueDictionary in the public API
2015-12-14 08:52:47 -08:00
Ryan Nowak 32bbd8516c Quick fix: Add routing feature on success 2015-12-11 08:36:46 -08:00
Ryan Nowak 36180ab6d0 Add IRouteHandler, RouteBase, and IRoutingFeature
Adds IRouterHandler, an abstraction for endpoints in the routing system
that can't chain (example: delegates). The idea is that some kinds of
routes aren't really friendly to chaining. If you don't support chaining,
then accept IRouteHandler and work with that rather than IRouter.

There's one implementation of IRouteHandler, RouteHandler. It implements
both IRouter and IRouteHandler.

Adds RouteBase as a base class for routes based on our template syntax and
defaults/constraints/data-tokens. Updated a lot of signatures to be
get/set virtual and mutable to facilitate or bigger variety of usage
scenarios.

Renamed TemplateRoute to just Route, now inherits from RouteBase.

Adds IRoutingFeature for middleware scenarios where you don't have access
to the route context.

Also adds some basic extension methods for accessing route values.
2015-12-10 17:55:03 -08:00
Pranav K 411a59125c Fixing CoreCLR package versions 2015-12-08 16:23:11 -08:00
Pranav K 39451a57b6 * Removing Helios from sample
* Adding System.Runtime to unblock CI
2015-12-08 11:17:29 -08:00
John Luo c672d699f1 Merge branch 'johluo/verbose-rename' into dev 2015-12-07 15:50:47 -08:00
Ryan Nowak b01183f023 Simplify link generation code
- Removes ProvidedValues and IsBound

- Removes best-effort link generation

- simplify code where possible

- lots of test simplification
2015-12-07 11:04:19 -08:00
John Luo 00a74aaa2c Reacting to verbose rename 2015-12-03 15:51:28 -08:00
Ryan Nowak c911a10692 Add Routing.Abstractions 2015-12-02 16:43:35 -08:00
Ryan Nowak 4441fba4ee Clean up folders and test names 2015-11-30 09:36:07 -08:00
Ryan Nowak 123eaf2278 Fix #233 - Routing stops when constraint is rejected
The fix here is to 'continue' instead of 'return'. Added the relevant test
cases, which only had positive cases for constraints.
2015-11-30 09:28:15 -08:00
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
Pranav K cad81fa608 Updating tests to use moq.netcore 2015-11-23 12:24:35 -08:00
Ajay Bhargav Baaskaran 4d69ad0db2 Moved AttributeRouting from MVC 2015-11-17 12:03:12 -08:00
Ajay Bhargav Baaskaran cef221f57a Added Template property to RouteTemplate 2015-11-12 15:28:02 -08:00
N. Taylor Mullen f4f6c1127f Remove System beta tag in project.json for coreclr packages. 2015-11-12 12:24:12 -08:00
Cesar Blum Silveira 2deca49bd7 Strong name everything. 2015-11-03 12:18:03 -08:00
Marc Climent 53fd5b5f54 Allow defaults to be null when constructiing TemplateMatcher 2015-10-23 09:51:47 +02:00
Pranav K 1fd284c87f Switching to generations TFMs 2015-10-22 00:52:03 -07:00
Eilon Lipton c0242240f8 Adding doc comments for frequently used APIs
Some copied from older docs.
Also renamed BuilderExtensions type to a more specific name.
2015-10-19 15:25:59 -07:00
Ryan Nowak a5727dc932 Incorporate StringSegment from primitives 2015-10-08 12:44:59 -07:00
Ryan Nowak e5f4aa03d2 Avoid allocating in TemplateMatcher on failure
This change rejiggers the URL matching algorithm into using a two-pass
system to avoid allocating anything when a URL fails to match a route.
2015-10-06 14:14:01 -07:00
Ryan Nowak 371d4e62da Remove string.Split from routing
This change removes the call to string.Split and a few substrings, and
replaces it with a tokenizer API. The tokenizer isn't really optimized
right now for compute - it should probably be an iterator- but it's a
significant improvement on what we're doing.
2015-10-06 10:21:00 -07:00
Pranav K 2f8dba6659 Renaming Microsoft.Framework.* -> Microsoft.Extensions.* 2015-10-03 15:44:48 -07:00
Ajay Bhargav Baaskaran d5d11eb30e Fix case sensitive comparison in TemplateMatcher 2015-09-29 14:36:42 -07:00
Ryan Nowak f95ffb57ae Make dictionary allocations lazy on RouteData
This change makes the allocation of DataTokens and Values on RouteData
lazy, and elides copies when copying an 'empty' RouteData.

In our current architecture this change will eliminiate 2 * (N + 1)
dictionary allocations/copies per request, where N is the number of routes
processed. In a large system with lots of attribute routes, this number
could be very significant.

For a small MVC site (ModelBinding, Validation, Views) with one route, it
still shows a modest reduction of dictionary allocations without adding
much complexity.
2015-09-28 22:54:32 -07:00
Anthony van der Hoorn 59b698c8b2 Expose parsed route so that observers can get extra details about the route (i.e. optional state) 2015-09-23 09:00:28 -07:00
Pranav K c6941e797f Replacing NotNullAttribute with exceptions 2015-09-11 15:08:04 -07:00
Pranav K 7cd8db6695 Adding NeutralResourcesLanguageAttribute 2015-09-10 18:29:07 -07:00
Ajay Bhargav Baaskaran ee9945f06d Added timeout to regex 2015-09-10 15:21:56 -07:00
LBi Jeroen Slor 87360d861f Added configure options. Added default default addoptions call 2015-09-04 08:48:46 -07:00
N. Taylor Mullen 5ec25174ff Update project.json to have warningsAsErrors accept a bool. 2015-09-02 15:34:53 -07:00
Hao Kung 3cab10cfd7 React to options rename 2015-09-02 13:55:39 -07:00
Pranav K 8915d428c4 Reacting to DI changes 2015-08-11 14:10:55 -07:00
Troy Dai eb266a1a7c Update CoreCLR versions 2015-08-04 10:15:32 -07:00
Pranav K fe9bf8bcbf Remove the use of Regex in the TemplateRouteParser
Fixes #164
2015-08-03 11:13:57 -07:00
Victor Hurdugaci f135b7d8dd Add repository information to project files 2015-07-01 20:22:39 -07:00
Ajay Bhargav Baaskaran 0882a393a4 Removed unwanted logging for non-matching routes 2015-06-23 10:53:58 -07:00
Ajay Bhargav Baaskaran b135a9d53b [Fixes #188] Added support for AppendTrailingSlash in RouteOptions 2015-06-19 11:46:25 -07:00
Ajay Bhargav Baaskaran 7172608722 Using LogVerbose instead of LogInformation 2015-06-16 14:33:05 -07:00
Troy Dai d3b0aba9b8 React to common package name change 2015-05-07 09:40:03 -07:00
Hisham Abdullah Bin Ateya 8636477b85 Using [NotNull] and 'nameof' operator 2015-05-06 17:43:19 +03:00
Kiran Challa f2e6c294b0 Address feedback for PR: https://github.com/aspnet/Routing/pull/182 2015-05-05 12:39:32 -07:00
N. Taylor Mullen 352732fc62 Update LICENSE.txt and license header on files. 2015-05-01 13:59:22 -07:00
Kiran Challa 1f6d3fe4cc Fix RouteValueDictionary to handle read-only dictionaries. 2015-05-01 11:55:01 -07:00
Pranav K f6e48d0080 Reacting to Logging.Interfaces => Logging.Abstractions rename 2015-04-30 10:02:47 -07:00
unknown d76b332a53 Updata _dataToken to _dataTokens in VirtualPathData 2015-04-14 16:14:36 -07:00
Kiran Challa 1c66e0a317 Cleanup logging
- Removed existing logger scopes as we want to minimize the number of scopes being created.
- Cleaned up tests related to removal of scopes.
- Added new log statements.
- Removed old logger structure base implementation and related tests. Added new tests also.
2015-04-08 14:20:36 -07:00
N. Taylor Mullen 7a2c338d25 Merge branch 'release' into dev 2015-04-07 14:49:17 -07:00
N. Taylor Mullen bca280d974 Add serviceable attribute to projects.
aspnet/DNX#1600
2015-04-07 14:49:11 -07:00
Doug Bunting a58ad8cde9 Merge remote-tracking branch 'origin/release' into dev 2015-04-03 12:10:47 -07:00
Doug Bunting 458a0f6809 Update .xproj files for Microsoft.Web.AspNet.* -> Microsoft.DNX.* rename 2015-04-02 13:49:28 -07:00
N. Taylor Mullen e825776663 Add travis-ci support.
- Runs ./build.sh verify
- Added quotes on warningsAsErrors to work around mono bug.
2015-03-31 17:50:43 -07:00
ianhong ff209f04bb Should GetVirtualPath returns PathString 2015-03-22 19:39:20 -07:00
Kiran Challa fe5b6d67c5 Fix routing sample 2015-03-20 14:55:05 -07:00
ianhong 3693002b02 Introducing VirtualPathData for IRouter.GetVirtualPath 2015-03-19 21:59:20 -07:00
Hao Kung 0db1f1a42f React to hosting 2015-03-19 21:02:35 -07:00
sornaks 37dc8581de Removing 'Options' from the 'ConfigureRouteOptions' extension method name. 2015-03-16 14:54:36 -07:00
Praburaj fb08460770 Using [NotNull] from common repo package 2015-03-13 17:54:16 -07:00
Praburaj 61e4f55075 Moving the IServiceCollection extension into Microsoft.Framework.DependencyInjection namespace
Fixes: https://github.com/aspnet/Routing/issues/160
2015-03-13 14:55:49 -07:00
N. Taylor Mullen 81c43301d3 Update .kproj => .xproj. 2015-03-11 14:04:11 -07:00
N. Taylor Mullen 2973795a6e Remove BOM from project.json, *.cmd, *.sh and *.shade files. 2015-03-09 12:58:37 -07:00
N. Taylor Mullen da775351e2 Update aspnet50/aspnetcore50 => dnx451/dnxcore50. 2015-03-08 12:55:34 -07:00
David Fowler f46b373acb Depend on interfaces 2015-03-05 03:27:15 -08:00
Brennan 1e6b34a043 Documentation 2015-03-04 20:41:40 -08:00
Brennan 859a0d62b8 Logging API changes 2015-03-04 19:59:23 -08:00