* Remove all ref/ projects
* Remove GenAPI infrastructure
* Remove notion of a reference assembly project
- remove `$(IsReferenceAssemblyProject)`, `$(ReferenceReferenceAssemblies)` and `$(ReferenceImplementationAssemblies)`
- remove unnecessary `$(NoWarn)` settings
nits:
- remove a few misleading comments
- wrap some long lines
* Move .0 package version workaround into Versions.props
- touch up SharedFramework.External.props
* Expose `%(LatestPackageReference.RTMVersion)` metadata
- automate use of properties in the `@(LatestPackageReference)` item group to make this maintainable
- add a couple of special cases at the bottom of eng/Dependencies.props
- add one more `$(...PackageVersion)` property to avoid yet-another special case
* Enable Roslyn reference assemblies
- exclude ref/ assembly from packages other than targeting pack
- update Microsoft.AspNetCore.App.Ref.csproj
- `%(IsReferenceAssembly)` and `%(ReferenceGrouping)` metadata no longer relevant
- only ref/ assemblies are in `@(ReferencePathWithRefAssemblies)` item group
nits:
- remove now-unnecessary workaround
- issues with TFM transition are behind us
- clean up Microsoft.AspNetCore.App.Runtime.csproj slightly
- use `GeneratePathProperty="true"`
- reorder item / property settings for meta-expansion
- correct spelling errors and phrasing in comments
* Update documentation to reflect recent changes
- remove CrossRepoBreakingChanges.md; was tied to old TeamCity infrastructure
- also much less relevant given repo merges
- adjust details and examples in ReferenceResolution.md
- reflect repo merges, Dependencies.props changes, and current Maestro++ channels
- add a few more details e.g. specific files where Version.Details.xml versions are used
* !fixup! Remove another irrelevant doc file
* !fixup! Address PR review suggestions
- convert a couple of warnings to errors
- use consistent casing for Microsoft.NETCore.App.Runtime.* packages
- reduce `%(LatestPackageReference.Version)` metadata special cases
- add and improve comments e.g.
- improve comments about `$(*V0PackageVersion)` properties
- improve placement of comments about item removal in ResolveReferences.targets
- confirmed `$(*V0PackageVersion)` property list is complete
nits:
- fix solution example in ReferenceResolution.md
- remove item group definition for `@(LatestPackageReference)`
- remove `%(LatestPackageReference.VersionName)` metadata after use; large item group
- similarly, remove `%(LatestPackageReference.RTMVersion)` when not needed; just complicates `Condition`s
When I squash, I must remember this fixes
- #14801
- dotnet/aspnetcore-internal#2693
* Actually use `%(LatestPackageReference.RTMVersion)` metadata
- gather RTM package references in a new project
- a (very) separate project to work around package conflict resolution
- empty `Test` target works around Arcade's testing approach
- new target in ResolveReferences.targets updates relevant assembly paths to use the RTM packages
- done as soon as possible after `ResolvePackageAssets` determines the paths
- done for all compilation inputs, not just ref/ assemblies
AuthorizeRouteView combines AuthorizeView and RouteView on one abstraction for convenience, but it was missing a Resource parameter to capture and flow the resource to pass on to the AuthorizationService. This PR adds a new Resource parameter and makes sure that the value is passed to the authorization service so that it is available for the authorization handlers in a policy.
* Modified EditForm to return _fixedEditContext via the EditContext parameter. Also added some tests to cover the new functionality
* Swapped to boolean to track provided EditContext
* Patched ref assembly
* Simplified setting _hasSetEditContextExplicitly
* Renamed _fixedEditContext to _editContext
* Updated null check in OnParametersSet
* Simplified check for EditContext updates based on Model changes
Add a `DisplayName` parameter to `InputBase`, which is used in validation messages instead of `FieldIdentifier.FieldName`.
- This works for `InputDate`, `InputNumber` and `InputSelect`.
- Extracted some shared code, just like what @StephanZahariev did in his PR.
Addresses #11414
Adds an empty InvokeAsync() overload for both EventCallback and EventCallbackOfT.
Updated tests to simply use this new overload instead of InvokeAsync(null).
Addresses #23603.
* [Blazor] Support IAsyncDisposable in components
* Handles async disposal of components within the Blazor pipeline.
* Renders remain synchronous and don't wait for disposal to complete.
* Synchronous disposal executions remain inlined.
* Async disposal executions can trigger renders in different batches.
* Async disposals are handled individually and not grouped based on the batch they were generated on.
* Default new runtime feature switches
These new feature switches have been added to the runtime to make applications smaller. Setting reasonable defaults to Blazor wasm projects.
Fix#23716
* PR feedback
* Default new runtime feature switches
These new feature switches have been added to the runtime to make applications smaller. Setting reasonable defaults to Blazor wasm projects.
Fix#23716
* PR feedback
* Spruce up async handling in OnNavigateAsync
* Apply suggestions from code review
Co-authored-by: Günther Foidl <gue@korporal.at>
* Ensure previous task awaited before starting next one
* Apply suggestions from code review
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* Validate no exceptions throw on multiple invocations
* Address feedback from peer review
Co-authored-by: Günther Foidl <gue@korporal.at>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* Add sharedfx and targeting pack tests (#23045)
* Add test for assembly versions
* Add test for framework list
* Add some hardcoded lists for sharedfx and targeting pack content
* Fix failing tests
* Fix targeting pack tests
* Feedback
* Move to latest NuGet.exe
- 5.3.0 -> 5.6.0
- should improve performance and may improve reliability
* Also switch from NuGet.Build.Tasks to NuGet.Packaging
- move to 5.6.0 version here too
- reduce transitive dependencies; we don't need them all
* Migrated protected browser storage.
* Added E2E tests.
* Added safeguard against using ProtectedBrowserStorage in wasm.
* Added TryGetValue.
* Added Microsoft.AspNetCore.Components.Web.Extensions
* Minor cleanup
* Moved ProtectedBrowserStorage out of Web.JS.
* Delete Microsoft.AspNetCore.Components.Web.Extensions.netcoreapp.cs
* Updated ProjectReferences.props
* Improvements and cleanup.
* Update Microsoft.AspNetCore.Components.Web.Extensions.csproj
* Added Web.Extensions to the VS solution.
* Add framework support for lazy-loading assemblies on route change
* Configure lazy-loaded assemblies in WebAssemblyLazyLoadDefinition
* Move tests to WebAssembly-only scenarios
* Refactor RouteTableFactory and add WebAssemblyDynamicResourceLoader
* Address feedback from peer review
* Rename 'dynamicAssembly' to 'lazyAssembly' and address peer review
* Add sample with loading state
* Update Router API and assembly loading tests
* Support and test cancellation and pre-rendering
* Apply suggestions from code review
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
* Spurce up API and add tests for pre-rendering scenario
* Use CT instead of CTS in NavigationContext
* Address feedback from peer review
* Remove extra test file and update Router
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
All rules are currently disabled, except for one that I enabled for
src/Http via a new ".editorconfig" file I added there.
Other changes:
* Allow editorconfigs in MVC and Razor to flow to the root
* Consolidate a few editorconfig settings
* Tweak Ruleset config in Azure/AzureAD where it clashed.
Addresses the beginning of #9620, but it's a fair chunk of work to
enable most rules through the whole repo. That can be done directory by
directory and rule by rule by dropping .editorconfig files though.
* Tweaks to make dotnet-watch run faster
* Previously dotnet-watch calculated the watch file list on every run by invoking MSBuild. This
changes the tool to only calculate it if an MSBuild file (.targets, .props, .csproj etc) file changed
* For dotnet watch run and dotnet watch test command, use --no-restore if changed file is not an MSBuild file.
* Add opt-out switch
* Update src/Tools/dotnet-watch/README.md
* Fixup typo
* Update src/Tools/dotnet-watch/README.md
* The underlying Json issue is fixed.
* The X509 issue is not an issue when TrimMode is set to link (which is it now by default).
Contributes to #23262
* Use preferred overloads of string.Split
* Revert TrimEntries for netstandard2.0
Revert usage of StringSplit.TrimEntries for projects that target netstandard2.0.
Co-authored-by: Levi Broderick <levib@microsoft.com>
* Make fields readonly
Make a number of fields that aren't changed readonly.
* Use range to trim string
Use a range to trim the last character of the paths.
* Use nameof()
Use nameof() for exceptions rather than literals.
* Use Task.CompletedTask
Use Task.CompletedTask instead of Task.FromResult().
* Use Array.Empty()
Use Array.Empty() instead of allocating an empty array.
* Remove unused parameter
Remove unused CancellationToken parameter.
* Fix compilation error
Fix compilation error.
* Apply suggestions from code review
Add comment explaining range syntax.
* Adds support for loading PEM certificates and keys in Kestrel.
* You can load PEM Certificate + PKCS8 encoded PEM Keys.
* Certificates in DER format + PKCS8 encoded PEM Keys.
* Supported key types are:
* RSA
* ECSA
* DSA
* Add support for gzip compression during build and publish
3.2 shipped with gzip compression during build and publish. During the port to 5.0, the build and publish
pipeline was different and ended up only during brotli compression during publish. However, during build
the app size is now up to 20MB. Statically compressing runtime assets during build reduces the payload size
to about 8.5 MB. This should help with faster initial boot ups and perception.
* Quarantine test
* More quarantine
* Started on InputRadio forms component.
* Added E2E test for InputRadio.
* Added docstring for InputRadio.
* Changed value to be serialized using BindConverter.
* Added InputChoice for choice-based inputs.
InputChoice contains checks for valid choice types that used to exist in InputSelect. Both InputSelect and InputRadio now derive from InputChoice and thus also contain those checks.
* Added InputRadioGroup.
* Small fix.
* Removed InputChoice, cleaned up.
* Added internal access modifier to InputExtensions.
* Small improvements.
* Updated an outdated exception message.
* Updated test to reflect updated exception message.
* Improved API to enforce InputRadioGroup.
* Added support for InputSelect int and Guid bindings.
* Changed validation CSS classes to influence InputRadio components.
* Use linker extensibility to enable better trimming
* Configure TrimmerDefaults=link if unspecified
* Allow Microsoft.AspNetCore.* and Microsoft.Extensions.* packages to be trimmed.
* Make producing the trimmer root descriptor more incremental
* Allow extensibility of DefaultAuthorizationService
When only a small behavior change of the `DefaultAuthorizationService` is wanted, it would be nice if you could override its methods and building upon them rather than having a copy-paste of the class in your codebase.
Inside the `override` methods in your inherited class you could call the `base` method to reuse parts of its logic.
Please refer to https://github.com/dotnet/aspnetcore/issues/23094 for the usecase.
* updated ref assembly
* Ensure BlazorWebAssembly.js is present
* Unquaratine blazor template tests
* The failure issue https://github.com/dotnet/aspnetcore/issues/20479 was resolved, but the assembly level quarantine was
missed being removed.
* Use shorter project file names to avoid long path issues.
* Update blazorwasm template tests to react to net5 updates
* Update src/ProjectTemplates/Shared/ProjectFactoryFixture.cs
Specifying the RID and PublishDir when publishing the driver app causes all sorts of
build issues. This change moves specifying the RID in to the driver app and ensures PublishDir
does not flow to the referenced RazorSDK project.
* Fix docker build
* Update readme typos
* Use field rather than property
Operate on a field directly, rather than through a property.
* Make field readonly
Make field read-only as its value is never changed.
* Remove lock
Use Interlocked.Decrement() instead of taking a lock.
* Remove lock for increment
This removes the need for the lock in the success case at the cost of an extra Interlocked.Decrement() call for the failed case.
* Fix typos
Change "availible" to "available".
* Add unit test for full queue
Add a unit test that validates request is not queued if the queue is already full.