Commit Graph

597 Commits

Author SHA1 Message Date
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
Nate McMaster 3cae26c6a2 Set RepositoryRoot 2017-10-13 14:42:32 -07:00
Jass Bagga bdbe922b22 Add logging (#467)
Addresses #439
2017-10-12 14:23:01 -07:00
Ryan Brandenburg c53fb8f10a Update bootstrappers 2017-10-09 12:44:57 -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
Nate McMaster 6b3d42f6bd Minor changes to test code to resolve xUnit2013 build errors 2017-10-05 15:26:36 -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 a146f0484b fix test break 2017-09-29 16:26:29 -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 9c30dd1256 Merge pull request #461 from aspnet/rynowak/endpoints-and-addresses
Making endpoints and addresses easier
2017-09-29 11:08:39 -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 44d08dcb2b Add integration test 2017-09-27 16:12:45 -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
Justin Kotalik 57bf1494dd Increase Minimum Version of Visual Studio to 15.3.0 2017-09-21 17:58:03 -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 6b2ccdead8 Add sample to "select" an address and generate a URL (#434)
Addresses #428
2017-09-01 14:02:16 -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
Nate McMaster 248f15dee1 Upgrade to xunit 2.3.0-beta4
Includes some changes as required by the new analyzers in this upgrade
2017-08-22 17:49:54 -07:00
John Luo 32721a0ad0 Ensure fallback to curl after failed wget 2017-08-02 14:33:42 -07:00
John Luo 27700a0409 Update __get_remote_file logic 2017-08-02 12:44:48 -07:00
Nate McMaster 341c673f30 Fix syntax warning when running build.sh on older versions of bash
[ci skip]
2017-07-26 10:28:56 -07:00
Nate McMaster aa54c26a12 Update bootstrappers to use the compiled version of KoreBuild
[ci skip]
2017-07-25 16:34:36 -07:00
Pranav K 43f48434f0 Updating to InternalAspNetCoreSdkVersion 2.1.1-* 2017-07-25 15:14:41 -07:00
Ryan Brandenburg 3564b4eaa4 Set AspNetCoreVersion 2017-07-24 17:58:31 -07:00