Commit Graph

115 Commits

Author SHA1 Message Date
Pranav K da3f97b0ad
Fix client validation for record types (#26159)
* Fix client validation for record types

Server validation for record types uses metadata from parameters
when validating record type properties. However client validation
does not use the parameter to harvest client validation attributes.

In the absence of this change, validation on parameters would require server
round trips which is unexcepted and not at parity with validation applied
to properties on regular classes or record types.

Validation experience with record types is subpar and requires server
round trips.

No. This feature is new to 5.0.

Low. The change is isolated to record types and does not affect other code paths. We have
unit and functional test coverage to verify this change.

* Correctly dispose app after use
2020-09-22 22:02:49 -07:00
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
Pranav K 78a587b02e
Guard against client disconnect exceptions that appear when reading body (#25146)
* Guard against client disconnect exceptions that appear when performing ReadFormAsync

Reading the request body may throw an exception. This change adds some extra guards
for this and presents this as a 4xx response rather than a 5xx response.

* Add some tests

* Fixup test
2020-08-25 09:29:50 -07:00
dotnet-maestro[bot] 927ddab349
[master] Update dependencies from dotnet/runtime dotnet/efcore (#24717)
* Update dependencies from https://github.com/dotnet/runtime build 20200808.3

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Hosting , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting.Abstractions , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.ServiceProcess.ServiceController , System.Security.Principal.Windows , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.CompilerServices.Unsafe , System.Security.AccessControl , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions
 From Version 5.0.0-rc.1.20406.11 -> To Version 5.0.0-rc.1.20408.3

* Update dependencies from https://github.com/dotnet/runtime build 20200809.3

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Hosting , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting.Abstractions , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.ServiceProcess.ServiceController , System.Security.Principal.Windows , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.CompilerServices.Unsafe , System.Security.AccessControl , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions
 From Version 5.0.0-rc.1.20406.11 -> To Version 5.0.0-rc.1.20409.3

* Update dependencies from https://github.com/dotnet/efcore build 20200810.1

Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory
 From Version 5.0.0-rc.1.20406.4 -> To Version 5.0.0-rc.1.20410.1

* Update dependencies from https://github.com/dotnet/efcore build 20200810.2

Microsoft.EntityFrameworkCore.Tools , Microsoft.EntityFrameworkCore.SqlServer , dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.InMemory
 From Version 5.0.0-rc.1.20406.4 -> To Version 5.0.0-rc.1.20410.2

* React to S.T.Json changes

* Update LangVersion=9.0 in the repo to use T?
* Remove LangVersion project project files

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
2020-08-10 19:50:18 +00:00
Pranav K 088a6fa1ec
Add support for binding record types (#23976)
* Add support for binding record types

* PR feedback

* PR changes

* Changes per PR comments

* Changes per PR comments

* Update src/Mvc/Mvc.Core/src/Resources.resx

* Apply suggestions from code review

* Add some more tests

* Undo blazor.server.js changes

* Fixup test
2020-07-24 08:45:06 -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
Pranav K 9a4e6cf97c
Merge remote-tracking branch 'origin/release/5.0-preview7' 2020-07-02 11:42:14 -07:00
Ajay Bhargav B 7f4b846e9f
Made the encodings of .razor and .cshtml files in the repo consistent (#23502)
* Added UTF8 BOMs to .razor and .cshtml files

* Fixes and unquarantined BOM tests

* Update .editorconfig
2020-06-30 12:03:01 -07:00
Steve Sanderson eb76931578
Strip insignificant whitespace at compile time (#23385)
* Define @preservewhitespace directive attribute

* Have ComponentWhitespacePass respect preservewhitespace option

* Tests for overriding the preservewhitespace option (and fix implementation)

* Begin adding test infrastucture for ComponentWhitespacePass

* Remove leading/trailing whitespace from markup elements recursively

* Update baselines

* Add test showing we don't remove whitespace between sibling elements

* Remove whitespace before/after C# code statements (not expressions)

* Update baselines

* Slight improvements to test

* Remove leading/trailing whitespace inside component child content

* Update baselines

* Fix Razor tests

* Fix MVC test

* Better fix for MVC test

* CR: Make ComponentPreserveWhitespaceDirective conditional on langversion >= 5.0
2020-06-30 07:49:28 -07:00
Pranav K 7da6931209
Revert "Undo use of pipewriter in FileBufferingWriteStream (#21833)" (#23391)
This reverts commit 48261fdada.
2020-06-30 06:22:33 -07:00
Pranav K baf7e6c4d6
Add support for optional FromBody parameters (#22634) (#23246)
* Add support for optional FromBody parameters (#22634)

* Add support for optional FromBody parameters

Fixes https://github.com/dotnet/aspnetcore/issues/6878

* Fixup nullable

* Changes per API review

* Fixup doc comment (#23229)
2020-06-23 08:06:14 -07:00
Pranav K f7d2fac8a2
Add support for optional FromBody parameters (#22634)
* Add support for optional FromBody parameters

Fixes https://github.com/dotnet/aspnetcore/issues/6878

* Fixup nullable

* Changes per API review
2020-06-22 19:11:55 +00: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 902e735b27
Configure the page handler / controller instance as the container when validating top-level properties (#22164)
Validation attributes such as a CompareAttribute require a container to be configured in ValidationContext. This change
configures uses the controller or page handler instance that the property is being bound on when binding top-level properties.

Fixes https://github.com/dotnet/aspnetcore/issues/4895
2020-06-03 00:48:56 +00:00
John Luo 50f3a16571 aspnetcore-tooling migration fixups 2020-05-26 12:31:49 -07:00
Pranav K 48261fdada
Undo use of pipewriter in FileBufferingWriteStream (#21833) 2020-05-14 12:38:49 -07:00
Pranav K e29c495166
Transfer endpoint metadata from PageActionDescriptor to CompiledPageActionDescriptor (#19061)
Fixes https://github.com/dotnet/aspnetcore/issues/17300
2020-02-14 10:53:46 -08:00
Ryan Brandenburg 7816ef94ca
Handle synchronous exceptions from partial (#16679)
Handle sync exceptions within async context
2019-11-01 10:56:19 -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
Ryan Brandenburg 405f002f58
Use a "FakeRoot" to allow Globbing pattern to walk up the heirarchy (#14803)
Use a "FakeRoot" to allow Globbing pattern to walk up the heirarchy
2019-10-29 16:08:04 -07:00
Pranav K 504f7f6856
Produce a ModelState error when reading the form throws (#14994)
* Introduce ValueProviderException analogous to InputFormatterException
* Record ValueProviderException as a model state error
* Fixup bug in reading ProblemDetails \ ValidationProblemDetails using the converter

Fixes https://github.com/aspnet/AspNetCore/issues/10291
2019-10-15 16:46:35 -07:00
Pranav K 6dee2f548a
Ensure Microsoft.AspNetCore.Razor.RuntimeCompilation has the right build targets (#14863)
* Include build and build transitive folders in RuntimeCompilation package
* Use a different folder name to allow GitHub indexing. See https://github.com/aspnet/AspNetCore/issues/14846
* Add a test to verify transitive build targets work

Fixes https://github.com/aspnet/AspNetCore/issues/14813
Fixes https://github.com/aspnet/AspNetCore/issues/12768
2019-10-11 13:53:16 -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
Javier Calvarro Nelson 74b801506b
[Blazor] Enables the client to initiate blazor server-side renders (#13147)
* [Blazor] Allows multiple components as entry points
* Removes all overloads that register a component statically with aborts
  selector.
* Updates render component to have a RenderMode parameter that indicates
  how the component must render. Valid values are Static, Server, and
  ServerPrerendered.
* When using Server or ServerPrerendered we emit marker comments into
  the page that are later used by blazor.server.js to bootrstrap a
  blazor server-side application.
2019-08-17 20:44:59 +02:00
Ryan Nowak aafb0813e6 Rename DOM types and change namespace
Fixes: #12553

This change renames all of our browser/DOM specific types from
`UIFooEventArgs` to `FooEventArgs` and puts the in the `.Web` namespace.

In addition to this, we're moving `EventHandlers` and `BindAttributes`
to the same. This has the impact of scoping the mappings those classes
provide based on the `.Web` namespace.

This means that we now expect `.Web` to be present as a using in
basically all contexts for a browser-based Blazor app. Updated
templates, samples and tests. I'll also need to update about a million
tests in the compiler codebase.

I've logged https://github.com/aspnet/AspNetCore.Docs/issues/13832 to
track the docs and release notes part of this work.
2019-08-16 14:34:34 -07:00
Pranav K 9bd027aa99
Make Partial on PageBase and PageModel work correctly (#13013)
* Make Partial on PageBase and PageModel work correctly

Fixes https://github.com/aspnet/AspNetCore/issues/10438
2019-08-13 12:49:10 -07:00
Pranav K 397f924e8d
Ensure SystemTextJsonHelper always HTML encodes output. (#12808)
* Ensure JsonSerializer always HTML encodes output.

* Update JsonOptions.JsonSerializerOptions to use encoder scheme that does not encode non-ASCII
  characters by default. This makes the encoding comparable to Json.NET's defaults
* In SystemTextJsonHelper, ensure that the content is always HTML-encoded
* Unskip skipped test

Fixes https://github.com/aspnet/AspNetCore/issues/9946
Fixes https://github.com/aspnet/AspNetCore/issues/11459
2019-08-05 13:34:32 -07:00
Pranav K 709b390157
Add helper methods on ControllerBase to return ProblemDetails (#12298)
* Add helper methods on ControllerBase to return ProblemDetails

* Introduce ControllerBase.Problem and ValidationProblem overload
  that accepts optional parameters
* Consistently use ClientErrorData when generating ProblemDetails
* Clean-up InvalidModelStateResponseFactory initialization.

Fixes https://github.com/aspnet/AspNetCore/issues/8537
2019-08-05 11:28:28 -07:00
Steve Sanderson 2ff6a5c0f8
Components router refactoring. Fixes #10493 #10445 (#12800) 2019-08-05 13:52:01 +01:00
Ryan Nowak 9b888e9df5
Blazor API Review: IUriHelper (#12425)
* Rename IUriHelper -> NavigationManager

- Remove IUriHelper interface
- Rename to NavigationManager
- Remove all traces of old naming

There's no functional or design change in this commit - just removing
all traces of the old name. The next few iterations will try to improve
the design.

* Minor API tweaks to NavigationManager

Making Initialize protected causes problems because right now the
server-side code needs to deal with one of two different
implementations, hence an exchange type is used. I followed the same
pattern that was used for auth for symmetry but I have some *cool*
thoughts.

- We can remove this when we remove stateful prerendering
- I have another idea to banish this pattern to the land of wind and
ghosts

If this ends up sticking around longer than a week in the code, lets
discuss other ideas and try to improve the pattern.

* Use hub method for server-side navigation

* Get rid of async local

* Add hub method test

* Misc bikeshedding

* Update src/Components/Server/src/Circuits/DefaultCircuitFactory.cs

Co-Authored-By: campersau <buchholz.bastian@googlemail.com>

* PR feedback
2019-08-01 17:11:09 -07:00
Ryan Nowak 45f50905d5 Remove stateful prerendering
Fixes: #12245
Fixes: #12630

This change removes stateful pre-rendering from Server-Side Blazor. This
means that when you render a component during the initial HTTP request,
we we will no longer preserve the component instances and their
parameters. While this feature was useful, it cause serious scalability
concerns.

This means that it will now be required to register "entry-point"
components in startup similar to client-side Blazor.
2019-08-01 07:44:14 -07:00
Ryan Nowak 6045c08072 Blazor API Review: Built-in components
Fixes: #12548

Renaming properties to drop 'Content' as a suffix. We haven't been
consistent in using this, and we're removing it instead of adding it
elsewhere.
2019-07-30 09:35:49 -07:00
Pranav K a77738e52f
Combine attributes specified on Page and PageModel (#12332)
Fixes https://github.com/aspnet/AspNetCore/issues/11296
2019-07-19 13:15:02 -07:00
John Luo f7ba8f1002
Use Arcade for resx generation (#12179) 2019-07-17 18:31:50 -07:00
N. Taylor Mullen 47eb53492c Update sample applications to use public [Parameter]s.
- Updated all `[Parameter]` references in .cs, .razor and .cshtml files to be `public`.

#8825
2019-07-17 14:32:40 -07:00
Ryan Nowak 4ba66f05bf
Fix nullable detection (#12202)
* Fix nullable detection

Fixes: #11828 and #11813
2019-07-16 19:58:30 -07:00
Ryan Nowak 9287301208 Rename OnInit and OnInitAsync to long form
OnInit -> OnInitialized
OnInitAsync -> OnInitializedAsync
2019-07-03 10:04:55 -07:00
Pranav K b10c8a6fc3
Eagerly read IAsyncEnumerable{object} instances before formatting (#11118)
* Eagerly read IAsyncEnumerable{object} instances before formatting

Fixes https://github.com/aspnet/AspNetCore/issues/4833
2019-06-25 10:53:43 -07:00
Ryan Nowak 1552e9f842 Use ValueTask for DynamicRouteValuesTransformer 2019-06-24 19:13:35 -07:00
Pranav K bed3542a9b
Add JsonExtensionData to ProblemDetails
Fixes https://github.com/aspnet/AspNetCore/issues/6202
2019-06-24 16:01:02 -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
Chris Ross 4ef204e13b
Remove or make public pubternals for Http #11312 (#11429) 2019-06-21 17:56:53 -07:00
Martin Costello 87ea03daf1 Register SystemTextJsonResultExecutor (#11247)
Register SystemTextJsonResultExecutor as part of MVC core services so that JsonResult works without Newtonsoft.Json.
Addresses #11246.
2019-06-17 09:33:45 -07:00
Ryan Nowak 670865d2a8
Make JSON case-insensitive (#10727)
* Make JSON case-insensitive

Fixes: #10724

The rationale for this change is that existing .NET client code for the
most part uses JSON.NET with its default settings (preserve property
casing). This includes the WebAPI client - which we're encouraging
everyone to use. It's not really reasonable for us to break everyone
using webapi client.

* Make separate options and add extension method

* fixit

* fix build

* fix text
2019-06-03 09:16:58 -07:00
Ryan Nowak 91e6839c8d
Adds inferred [Required] for non-null ref types (#9978)
* Adds inferred [Required] for non-null ref types

Follow up from #9194

This change adds the automatic inference of [Required] for non-nullable
properties and parameters. This means that if you opt into nullable
context in C#8, we'll start treating those types as-if you put
[Required] on them.

This provides a nice invariant to rely on, namely that MVC will honor
your declared nullability contract OR report a validation error. This
reinforces the guidance already published by the C# team for using
POCOs/DTOs with nullability. See
https://github.com/aspnet/specs/blob/master/notes/3_0/nullable.md for my
analysis on the topic.

* preemptively fix PR feedback xD

* PR feedback and functional test

* more

* Fix test failures

* fix

* more

* Do a barrel roll
2019-06-02 17:11:43 -07:00
Javier Calvarro Nelson 1165a6fb16
Support navigation during prerendering (#10694) 2019-06-01 01:40:45 +02:00
Hao Kung 5d6c2edab0
Require ClaimsPrincipal.Identity.IsAuthenticated for SignIn by default (#9482) 2019-05-31 15:43:00 -07:00
Artak 95d2f8ee7a
Changing `@functions` block to `@code` block (#10591)
* Changing `@functions` block to `@code` block
2019-05-29 13:36:24 -07:00
Pranav K 200c9e21bd
Use attributes for application part discovery (#10271)
* Use attributes for application part discovery

Fixes https://github.com/aspnet/AspNetCore/issues/4332
2019-05-20 09:10:12 -07:00