Commit Graph

342 Commits

Author SHA1 Message Date
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