Commit Graph

12 Commits

Author SHA1 Message Date
Pranav K cdae83efae
Use the declared type to infer NullableContextOptions (#15134)
* Use the declared type to infer NullableContextOptions

Prior to this change MVC used the runtime type rather than the declared type to
determine the nullability of a property based on state. In the case of inheritance,
this can be erroneous since the declared type may have a different nullability context
than the model type.

This change addresses this by adding content to `ModelIdentity` that allows inspecting the
declared type.

* Add an overload to `ModelMetadataIdentity` that allows flowing `PropertyInfo`
* Use the declared type in `DataAnnotationsMetadataProvider` to determine nullability based on context.

Fixes https://github.com/aspnet/AspNetCore/issues/14812
2019-10-20 06:30:58 -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 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 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
Pranav K 093df67c06
Avoid buffering during input formatting for longer than necessary (#9806)
* Avoid buffering during input formatting for longer than necessary

EnableRewind uses FileBufferingReadStream which is not disposed until the response is completed.
This results in holding on to internal buffers for significantly longer than necessary. Changing it
to  return the buffers immediately improved the allocations and throughput.
2019-05-03 06:45:52 -07:00
Doug Bunting dfae19ee7c
Merge branch 'release/2.2' -> 'master' 2019-04-19 18:53:15 -07:00
Nate McMaster d004cf0f14
Merge branch 'release/2.1' into release/2.2 2019-04-15 16:42:07 -07:00
Pranav K 5424045dac Ensure PackageArchive contains the right build of Razor.Design package (#6992)
* Ensure PackageArchive contains the right build of Razor.Design package

* Re-order values in build\dependencies.props to ensure Razor.Design's package version is
  overwritten.
* Convert additional package refs to project refs

Fixes https://github.com/aspnet/AspNetCore-Internal/issues/1708

* Update CodeCheck.ps1
2019-04-11 17:14:11 -07:00
Javier Calvarro Nelson 8499a27c7f
[Components] Relayer + Robust reconnect (#8911)
* [MVC][Components] Prerendering + Robust reconnect
* Relayers prerendering support on a separate package on top of MVC and
  components.
* Implements robust reconects with acknowledgements from the client.
* Improves interactive prerendering with the ability to reconnect to
  prerendered components.
* Removes the need to register components statically when prerendering
  them.
* Removes the need of using an element selector when prerendering an
  interactive component.
* Updates the templates to use the new fallback routing pattern and
  reenables the components test.
* Adds eslint to the Typescript project to help maintain a consistent
  style.
* Adds logging to support better debugging based on the pattern used by
  signalr.
* Fixes exception handling on the server to always report exceptions correctly to the client.
2019-04-02 19:17:03 +02:00
Ajay Bhargav Baaskaran 7a26d27e8b Merge branch 'release/2.2' 2019-02-14 16:08:51 -08:00
Ajay Bhargav Baaskaran 0c2ee920a1 Merge branch 'release/2.1' into release/2.2 2019-02-13 14:52:38 -08:00
Ajay Bhargav Baaskaran 4cceccd568
Make Mvc repo folder layout consistent (#7518) 2019-02-13 10:53:39 -08:00