* Detect culture change in .NET
With ICU sharding enabled, blazor wasm attempts to detect if the application culture was changed by the
application code as part of Program.MainAsync and tell them they need to opt out of sharding.
Prior to this change, Blazor compared the .NET culture string with a JS representation for language. With iOS 14,
the two culture strings differ in casing which prevents the use of any Blazor WASM app the latest version installed.
As part of this change, the comparison is performed entirely in .NET which avoids relying on the JS representation.
* Fixups
* 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
* E2E test cases for Virtualize data refresh
* Expose public RefreshDataAsync API
* Optimize: don't instantiate CancellationTokenSource when it won't be used
* For in-memory data, refresh automatically on each render cycle
* Fix typo
- see dotnet/arcade#5866 discussion
- leaving redundant `[AssemblyMetadata("CommitHash", ...)]` because it's used in this repo
- e.g. src\Components\benchmarkapps\Wasm.Performance\Driver\Program.cs
- also consistent with native images
* Updated icons for projects that appear in VS with icons that have the
language adornment.
This PR should fix#25973.
* updating icons for asp.net core templates in vs
* Converge implementations of AwaitableProcess and ProcessEx
* dotnet-watch tests are running in to the same issue as GRPC tests (https://github.com/dotnet/aspnetcore/pull/20341/files).
This change carries over some of the patterns from the other type to remedy this issue.
* Revive dotnet-watch tests on OSX
* Remove build artifacts that were accidentally commited to source.
This change is prep for post build signing. When PostBuildSign=true, signing is not performed during the build. Instead, pass the top-level artifacts that are signable to PushToAzureDevOpsArtifacts (via Publish.proj).
Also fix up ArtifactsDir. As far as I can tell, it's been fixed up in Arcade to always include the trailing \, and Publish.proj should no longer be messed up.
- otherwise need to released previous packages; that's slower and less reliable
- left escape hatches but they're not currently used
- broke in servicing exercise because repo doesn't use its own isolated feeds
- also use latest package references for non-packable implementation projects
nits:
- copy some comment and spacing improvements from release/3.1
This produces a bunch of warnings and causes the quarantine build to fail. Passing NoBuildNative keeps with the theme of -NoBuild also being passed to this script
- correct Helix test failures with stable versions, where SDK's packs aren't enough
E.g. from https://dev.azure.com/dnceng/internal/_build/results?buildId=813814
``` text
...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: The "ResolveTargetingPackAssets" task failed unexpectedly. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj]
...\.dotnet\sdk\5.0.100-rc.1.20379.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(318,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\.dotnet\packs\Microsoft.AspNetCore.App.Ref\5.0.0\data\FrameworkList.xml'. [...\src\ProjectTemplates\test\bin\Release\net5.0\TestTemplates\AspNet.m0yq3xrporu\AspNet.m0yq3xrporu.csproj]
```
- set the package version of Extensions assemblies using NETCore.App version
- ignore Microsoft.Extensions.Internal.Transport package version
- transport package has a non-stable version and isn't shipped
- just got lucky this worked before versions stabilize
- update test expectations when checking PackageOverrides.txt
- use NuGet.Versioning to make this easier
dotnet-watch redirects standard out to detect when the app is launched and
prints these redirected messages to the console. Unfortunately once the app
is launched, redirected messages are no longer printed. This wasn't caught earlier
since ASP.NET Core is very quiet by default.
ASP.NET Core apps launched via dotnet watch do not print output to the console.
Yes. This was introduced as part of changes to dotnet-watch to launch a browser in 5.0-preview8.
Low.
* Fix chrome/selenium tests (#25330)
* Revert "Disable failing/hanging tests due to Chrome/Selenium issue (#25323)"
This reverts commit 332f1504128a63431cb67830703922cdeefee525.
* Update Selenium to latest
* Update API
* Try specifying a version
* Update Selenium to 4.0.0-beta5
* Disable browser log tests
* Fix components e2e tests and disable blazor standalone template test
* Disable tests using browser log
* Disable template test
* Avoid using .NET formatted strings in tests
* Annotate BasicTestApp suggesting that it needs the all globalization data
* Culture specific formatting relies on the ICU data carried by the OS. This
causes issues in our tests if WebAssembly carries a different set than the OS. Instead
updating these tests to use hardcoded strings.
* Additionally fixing an issue where some projects in the solution were using tasks from
the .dotnet SDK rather than the local copy of the SDK. This was causing issues building locally.
Co-authored-by: Pranav K <prkrishn@hotmail.com>