Commit Graph

35 Commits

Author SHA1 Message Date
Javier Calvarro Nelson b1e1aabc9d [Mvc] Fix global state in controller and action endpoint data sources.
* Create data sources "per router" instance.
* Make a global shared order sequence "per router" for conventional and
  controller and page routes.
* Create DynamicControllerEndpointSelector and DynamicPageEndpointSelector
  instances per data source.
2020-09-12 10:03:32 -07:00
Javier Calvarro Nelson a17842a2e4 [Mvc] Add support for order in dynamic controller routes (#25073)
* Order defaults to 1 same as conventional routes
* An incremental order is applied to dynamic routes as they are defined.
2020-09-12 10:03:32 -07:00
Ryan Nowak 6f37e8a552
[Mvc] Improved route value transformer (#21481)
* Apply suggestions from code review

Cleaned up error messages. Thanks @jamesnk, I totally overlooked the content.

Co-authored-by: James Newton-King <james@newtonking.com>

Co-authored-by: Javier Calvarro Nelson <jacalvar@microsoft.com>
Co-authored-by: James Newton-King <james@newtonking.com>
2020-07-22 15:44:51 -07:00
Doug Bunting c4c6e25a06
Add missing doc files and cleanup nits (#22931)
* nit: Remove useless `$(HasReferenceAssembly)` settings
  - set in /Directory.Build.targets
    - `true` only in `$(IsAspNetCoreApp)` projects
* nit: Remove useless `$(CompileUsingReferenceAssemblies)` settings
  - no current versioning differences between ref/ and src/ assemblies when targeting default TFM
* Add more `$(GenerateDocumentationFile)` settings
  - increases the number of generated doc files, mostly without problems
- !fixup! correct typo in `DebugProxyHost` doc comments
    - was not generating a doc file before
  - remove previous (ineffective) src/Components/Directory.Build.targets setting
  - nit: remove a duplicate `$(GenerateDocumentationFile)` setting
* nit: Remove useless `$(IsPackable)` settings
  - only analyzers and implementation projects are packable by default
    - main use case for explicit setting is projects shipping only in shared framework
  - conditional setting in src/Mvc/Directory.Build.props just subset logic in /Directory.Build.targets
* nit: Remove useless `$(IsProjectReferenceProvider)` settings
  - only implementation projects are providers by default
* nit: Remove useless `$(IsTestAssetProject)` settings
  - set in src/Mvc/test/WebSites/Directory.Build.props
* !fixup! Looks like `InProcessNewShimWebSite` must compile w/o ref/ assemblies
  - restore `$(CompileUsingReferenceAssemblies)` in this one project
2020-06-17 13:04:45 -07:00
Pranav K c11fe23f31
Very candidacy before processing in PageLoaderMatcherPolicy (#16678)
Fixes https://github.com/aspnet/AspNetCore/issues/13996
2019-10-30 15:21:13 -07:00
dotnet-maestro[bot] 8b7f662169 [release/3.1] Update dependencies from 2 repositories (#13571)
* Fix build

* Fix build.cmd

* Resolve build warnings

* Update ref assemblies

* Missed TFM updates

* Fix source build

* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190913.13
- Microsoft.EntityFrameworkCore.Tools - 3.1.0-preview1.19463.13
- Microsoft.EntityFrameworkCore.SqlServer - 3.1.0-preview1.19463.13
- dotnet-ef - 3.1.0-preview1.19463.13
- Microsoft.EntityFrameworkCore - 3.1.0-preview1.19463.13
- Microsoft.EntityFrameworkCore.InMemory - 3.1.0-preview1.19463.13
- Microsoft.EntityFrameworkCore.Relational - 3.1.0-preview1.19463.13
- Microsoft.EntityFrameworkCore.Sqlite - 3.1.0-preview1.19463.13

Dependency coherency updates
- Microsoft.AspNetCore.Analyzer.Testing - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.Memory - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.SqlServer - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.StackExchangeRedis - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.CommandLineUtils.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.AzureKeyVault - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Binder - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.CommandLine - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.EnvironmentVariables - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.FileExtensions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Ini - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Json - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.KeyPerFile - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.UserSecrets - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Xml - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DependencyInjection.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DependencyInjection - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DiagnosticAdapter - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Diagnostics.HealthChecks - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Composite - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Embedded - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Physical - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileSystemGlobbing - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Hosting.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Hosting - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.HostFactoryResolver.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Http - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Localization.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Localization - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Abstractions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.AzureAppServices - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Configuration - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Console - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Debug - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.EventSource - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.EventLog - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.TraceSource - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Testing - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ObjectPool - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options.ConfigurationExtensions - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options.DataAnnotations - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ParameterDefaultValue.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Primitives - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.TypeNameHelper.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ValueStopwatch.Sources - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.WebEncoders - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Internal.Extensions.Refs - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.JSInterop - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Mono.WebAssembly.Interop - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Bcl.AsyncInterfaces - 1.1.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- Microsoft.NETCore.App.Runtime.win-x64 - 3.1.0-preview1.19463.3 (parent: Microsoft.Extensions.Logging)
- Microsoft.Extensions.Logging - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.CSharp - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- Microsoft.Win32.Registry - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- Microsoft.Win32.SystemEvents - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.ComponentModel.Annotations - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Diagnostics.EventLog - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Drawing.Common - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.IO.Pipelines - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Net.Http.WinHttpHandler - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Net.WebSockets.WebSocketProtocol - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Reflection.Metadata - 1.8.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Runtime.CompilerServices.Unsafe - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Security.Cryptography.Cng - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Security.Cryptography.Pkcs - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Security.Cryptography.Xml - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Security.Permissions - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Security.Principal.Windows - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.ServiceProcess.ServiceController - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Text.Encodings.Web - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Text.Json - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Threading.Channels - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- System.Windows.Extensions - 4.7.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- Microsoft.Extensions.DependencyModel - 3.1.0-preview1.19463.3 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.App.Ref - 3.1.0-preview1.19463.3 (parent: Microsoft.Extensions.Logging)
- NETStandard.Library.Ref - 2.1.0-preview1.19463.3 (parent: Microsoft.Extensions.Logging)
- Microsoft.NETCore.Platforms - 3.1.0-preview1.19463.3 (parent: Microsoft.NETCore.App.Runtime.win-x64)
- Internal.AspNetCore.Analyzers - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.AspNetCore.Testing - 3.1.0-preview1.19463.6 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Net.Compilers.Toolset - 3.4.0-beta2-19462-08 (parent: Microsoft.Extensions.Logging)

* Fix tests

* Skip dotnet-openapi tests

* Add AssemblyName to nuspec to fix build

* Fix templates

* Fix template tests

* Update eng/Versions.props

* Feedback

* Hard code TFM in tools

* Fix build warnings

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190915.1
- Microsoft.NET.Sdk.Razor - 3.1.0-preview1.19465.1
- Microsoft.CodeAnalysis.Razor - 3.1.0-preview1.19465.1
- Microsoft.AspNetCore.Razor.Language - 3.1.0-preview1.19465.1
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.1.0-preview1.19465.1
2019-09-15 21:27:50 -07:00
Ryan Nowak 1552e9f842 Use ValueTask for DynamicRouteValuesTransformer 2019-06-24 19:13:35 -07:00
Ryan Nowak 6ce8a879ae Add dynamic controller/page routes
Adds infrastructure for a common IRouter-based pattern. In this pattern,
an extender subclasses Route to post-process the route values before MVC
action selection run. The new infrastructure duplicates this kind of
experience but based on endpoint routing.

The approach in this PR starts at the bottom... meaning that this is the
most-focused and least-invasive way to implement a feature like this.
Similar to fallback routing, this is a pattern built with matcher
policies and metadata rather than a built-in feature of routing.

It's valuable to point out that this approach uses IActionConstraint to
disambiguate between actions. The other way we could go would be to make
the *other* matcher policy implementations able to do this. This would
mean that whenever you have a dynamic endpoint, you will not by using
the DFA for features like HTTP methods. It also means that we need to go
re-implement a bunch of infrastructure.

This PR also adds the concept of an 'inert' endpoint - a non-Routable
endpoint that's created when fallback/dynamic is in use. This seems like
a cleaner design because we don't start *matching* RouteEndpoint
instances for URLs that don't match. This resolves #8130
2019-06-24 08:08:54 -07:00
Nate McMaster dc90e11c7a
Move obj and bin directories into repo root (#10063)
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.

Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/ 
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code
2019-05-15 13:44:55 -07:00
Ryan Nowak 127bc7ddd3
Fixes: #4597 Parse URI path with an endpoint (#9728)
Adds functionality to parse a URI path given a way to
find an endpoint. This is the replacement for various machinications
using the global route collection and `RouteData.Routers` in earlier
versions.

For now I'm just adding a way to do this using Endpoint Name since it's
a pretty low level feature. Endpoint Name is also very direct, so it
feels good for something like this.
2019-05-02 21:11:59 -07:00
Ryan Nowak ab3e0f953e
Makes RouteName => endpoint name for MVC (#9721)
* Makes RouteName => endpoint name for MVC

* feedback
2019-04-24 15:13:30 -07:00
Pranav K 004ac25983
Remove AddRazorSupportForMvc from MVC and Blazor projects (#9446)
Fixes https://github.com/aspnet/AspNetCore/issues/9126
Fixes https://github.com/aspnet/AspNetCore/issues/9183
Fixes https://github.com/aspnet/AspNetCore/issues/9207
2019-04-16 20:46:51 -07:00
Ryan Nowak 6f305373ca Allow fallback to controller to use MatcherPolicy 2019-04-16 19:36:32 -07:00
Ryan Nowak 258d34e382
Use coventional routes for link generation (#9037)
Use coventional routes for link generation

This change enables using conventional routes for link generation when
using MVC conventional routes. This change makes MVC link generation
behaviour highly compatible with 2.1.

The way that this works is that we create endpoints for **MATCHING**
using the denormalized conventional route, but we tell those endpoints
to suppress link generation.

For link generation we generate a non-matching endpoints per-route with
the same order value.

I added the concept of *required value any* to link generation. This is
needed because for an endpoint to participate in link generation using
RouteValuesAddress it needs to have some required values. These details
are a little fiddly, but I think it's worth doing this feature
completely.
2019-04-05 08:31:10 -07:00
Ryan Nowak 658b37d2bd
Make UseEndpoints a thing (#8765)
* Make endpoint middleware explicit

This change makes the endpoint middleware explicit again, and updates
all of the templates.

The other change here is make UseEndpoints be the place where you
register endpoints. This is vital because it puts your code visually at
the point of the pipeline where it executes.

Lastly, I removed support for UseMvc with endpoint routing. This is
causing issues for some security features, and we're moving in the
direction of trying to make the middleware heavy implementation required
in 3.0. There are some issues we won't be able to fix in MVC if we can't
unambiguously know if UseMvc was used or the middleware.
2019-03-28 15:41:11 -07:00
Pranav K 9a35bbea03
Experience for Razor SDK (#8731)
* Experience for Razor SDK

* Remove Components.Build
* Update MVC projects and templates to use AddRazorSupportForMvc
* Update components templates to use .razor extension

Fixes https://github.com/aspnet/AspNetCore/issues/6392

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190321.3

- Microsoft.NET.Sdk.Razor - 3.0.0-preview4.19171.3
- Microsoft.CodeAnalysis.Razor - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Razor.Language - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.0.0-preview4.19171.3

* Update dependencies from https://github.com/dotnet/core-setup build 20190322.01

- Microsoft.NETCore.App - 3.0.0-preview4-27522-01

Dependency coherency updates

- Microsoft.Bcl.Json.Sources - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.CSharp - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Win32.Registry - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ComponentModel.Annotations - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Data.SqlClient - 4.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Diagnostics.EventLog - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.IO.Pipelines - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.Http.WinHttpHandler - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.WebSockets.WebSocketProtocol - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Reflection.Metadata - 1.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Runtime.CompilerServices.Unsafe - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Cng - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Pkcs - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Xml - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Permissions - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Principal.Windows - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ServiceProcess.ServiceController - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Text.Encodings.Web - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Threading.Channels - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Extensions.DependencyModel - 3.0.0-preview4-27522-01 (parent: Microsoft.NETCore.App)
- Microsoft.NETCore.Platforms - 3.0.0-preview4.19164.7 (parent: Microsoft.NETCore.App)

* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190321.4

- Microsoft.EntityFrameworkCore.Tools - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-preview4.19171.4
- dotnet-ef - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.InMemory - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Relational - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-preview4.19171.4

* Update dependencies from https://github.com/aspnet/Extensions build 20190321.4

- Mono.WebAssembly.Interop - 3.0.0-preview4.19171.4
- Microsoft.JSInterop - 3.0.0-preview4.19171.4
- Microsoft.Internal.Extensions.Refs - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DiagnosticAdapter - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Xml - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.UserSecrets - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.KeyPerFile - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Json - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Ini - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.FileExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.EnvironmentVariables - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.CommandLine - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.AzureKeyVault - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.CommandLineUtils.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.StackExchangeRedis - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.SqlServer - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Memory - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Testing - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-preview4.19171.4
- Internal.AspNetCore.Analyzers - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Binder - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Composite - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Embedded - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Physical - 3.0.0-preview4.19171.4
- Microsoft.Extensions.WebEncoders - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ValueStopwatch.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.TypeNameHelper.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Primitives - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ParameterDefaultValue.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.DataAnnotations - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.ConfigurationExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ObjectPool - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.TraceSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Testing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.EventSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Debug - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Console - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileSystemGlobbing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HostFactoryResolver.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Http - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.AzureAppServices - 3.0.0-preview4.19171.4

* Grab latest from other aspnet repos
- brings everything into coherence
- aspnet/Extensions packages with version 3.0.0-preview4.19172.1 from build 20190322.1
- aspnet/AspNetCore-Tooling packages with version 3.0.0-preview4.19172.2 from build 20190322.2
- aspnet/EntityFrameworkCore packages with version 3.0.0-preview4.19172.3 from build 20190322.3
2019-03-22 17:33:20 -07:00
Ryan Nowak a1ec03e1e6 Add fallback routing for controllers and pages 2019-03-06 09:48:07 -08:00
Ryan Nowak 3d448f7197 Fix #5055 use of page parameter (#7441)
This change introduces some new heuristics to make it easier to use
'page' or other resevered parameter names as parameters in URL
generation.

--

The main change here is to allow the link generation tree to *ignore* a
value passed in to URL generation when it conflicts with an endpoint's
required values.

The main concern of this feature area is "how do we tell whether you are
linking to an action or a page?". Routing attempts to do the right thing
will requiring very little from the user in terms of expressing intent.

In this case, we try to tell the difference between an attempt to generate
a link to an action due to the presence of the 'action' parameter and
absence of the 'page' parameter. This obviously doesn't work when you
want to use 'page' as a non-reserved parameter in an action. The same
case occurs for pages, but users are already used to the idea that
'action' is a reserved word in MVC.

We can loosen this restriction when the value that's supplied for 'page'
is known not to be any existing value of the 'page' route value.

This approach seems somewhat reasonable but has many of the problems inherent
to this area. When it fails (the value you want to use for 'page' causes
a conflict) - it's going to be esoteric and hard to understand.
2019-02-22 11:44:43 -08:00
Nate McMaster 85ae18c723
Make Visual Studio 2019 a prerequisite to building this repo (#7005)
Changes:

* Make Visual Studio 2019 a prerequisite for building this repo
* Update .sln files
* Update Windows SDK to 17134
* Update developer docs
* Disable ANCM tests
* Update to .NET Core SDK 3.0 Preview 2
* Use Microsoft.NET.Sdk.Razor as a package consistently accross the repo
* React to changes in metadata from Microsoft.NETCore.App
* React to changes in .NET Core SDK
* Attempt to workaround CodeCheck.ps1 failure which doesn't repro locally or on different agents. Possibly due to differences in the version of the PowerShell task?
* Remove dead YML file
* Rename usages of win7-{x64,x86} to win-{x64,x86}
* Update KoreBuild to 3.0.0-build-20190219.1
2019-02-20 09:53:53 -08:00
Ryan Nowak acd1cf3251
Update MVC/Routing Startup Experience (#7425)
* Relayer MvcEndpointDataSource

Separates the statefulness of the data source from the business logic of
how endpoints are created.

I'm separating these concerns because one of the next steps will split
the MvcEndpointDataSource into two data sources.

* Simplify MvcEndpointInfo

Removing things that are unused and leftovers from the 2.2 design of
this feature.

* Remove per-route conventions

Removes the ability to target endpoint conventions
per-conventional-route. This was a neat idea but we have no plans to
ship it for now.

Simplified MvcEndpointInfo and renamed it to reflect its new purpose.

* Remove filtering from MvcEndpointDataSource

This was neat-o but we're not going to ship it like this. We're going to
implement filtering in another place. Putting this in the data source is
pretty clumsy and doesn't work with features like application parts that
need to be baked in addservices

* Simplify ActionEndpointFactory

* Split up data sources

* Use UseRouting in functional tests

I've rejiggered our functional tests to de-emphasize UseMvc(...) and
only use it when we're specifically testing the old scenarios.
UseMvc(...) won't appear in templates in 3.0 so it's legacy.

* Update templates

* Add minor PR feedback

* one more
2019-02-11 19:18:05 -08:00
Justin Kotalik e6d547a923 Merge branch 'jkotalik/22temp' into jkotalik/masterMerge 2019-01-16 14:39:10 -08:00
James Newton-King df7bfe5243
Unit test route name with RouteUrl and ambient values (#6719) 2019-01-16 13:57:13 +13:00
James Newton-King 180f735ac8
Fix non-parameter route constraints not called with endpoint routing for 2.2 (#6587) 2019-01-16 11:16:35 +13:00
Nate McMaster 0f65d44482
Merge branch 'release/2.2' 2019-01-09 18:09:25 -08:00
Nate McMaster a3f9b74bb9
Merge branch 'release/2.1' into release/2.2 2019-01-09 14:52:53 -08:00
Pranav K cdc66c5f98 Move JSON.NET specific features to a separate assembly 2019-01-08 12:49:29 -08:00
Nate McMaster 5d16f97965
Remove netcoreapp2.0 test TFMs (#6461)
.NET Core 2.0 reached EOL last year. This removes multi-targeting our test projects and test assets to only use .NET Core 2.1 and .NET Framework 4.6.1.
2019-01-08 11:20:09 -08:00
Ajay Bhargav Baaskaran 3787fbf3a3 Merge branch 'release/2.2' 2018-12-21 18:29:32 -08:00
Ajay Bhargav Baaskaran af2461d524 Merge branch 'release/2.1' into release/2.2 2018-12-21 11:38:25 -08:00
Ajay Bhargav Baaskaran 7f17d095d8
Convert Mvc to use Reference (#6047)
* Convert Mvc to use Reference

* Use ProjectReference for test assets
2018-12-20 16:27:32 -08:00
Doug Bunting 929d7f3306 Obsolete old `CompatibilityVersion` values
- #7156 part 1 of ?
- add `CompatibilityVersion.Version_3_0` and make it the default
- remove tests of old versions
  - also remove `CompatibilityVersion.Version_2_x` uses outside src/Mvc
  - for functional tests of legacy routing, use `MvcOptions.EnableEndpointRouting` to control behaviour
  - rename `StartupWith2xCompat...` classes to `StartupWithoutEndpointRouting`
- clean up comments mentioning `[Obsolete]` `CompatibilityVersion` values
  - many of the affected options will be removed in subsequent PRs but this cleanup helps when searching entire repo
- correct `<value>` comments in `ApiBehaviorOptions`

nits:
- take VS suggestions in changed files
- remove src/SiteExtensions/global.json and let file in repo root "win"
- fix a few grammar errors VS or the spell checker noticed
- move `<value>` elements before `<remarks>` for consistency
  - was undoing unintentional changes and noticed the inconsistency in a couple of additional files
2018-12-05 16:46:46 -08:00
James Newton-King f157b78d93 MVC reaction to RoutePattern required values 2018-12-04 12:14:35 +13:00
Ryan Brandenburg a6b473dc2c Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in c9887e027a
2018-11-27 15:36:38 -08:00
Ryan Brandenburg b659c82df6 Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in a6199bbfba
2018-11-27 12:09:17 -08:00
Ryan Brandenburg f4578f127c Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in 5a4fd3e792
2018-11-27 10:43:55 -08:00