Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion aspnetcore/blazor/components/quickgrid.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Set the `QuickGrid` component's <xref:Microsoft.AspNetCore.Components.QuickGrid.
<QuickGrid Items="..." Pagination="pagination">
```

<!-- UPDATE 10.0 Tracked by https://github.com/dotnet/aspnetcore/issues/57289
<!-- UPDATE 11.0 Tracked by https://github.com/dotnet/aspnetcore/issues/57289
for multiple paginator components problem. -->

To provide a UI for pagination, add a [`Paginator` component](xref:Microsoft.AspNetCore.Components.QuickGrid.Paginator) above or below the `QuickGrid` component. Set the <xref:Microsoft.AspNetCore.Components.QuickGrid.Paginator.State%2A?displayProperty=nameWithType> to `pagination`:
Expand Down
5 changes: 1 addition & 4 deletions aspnetcore/blazor/components/rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,4 @@ The state manager approach is similar to the earlier case with <xref:System.Time

## WebAssembly loading progress indicator for Blazor Web Apps

<!-- UPDATE 10.0 Will be removed for a new feature in this area.
Tracked by: https://github.com/dotnet/aspnetcore/issues/49056 -->

A loading progress indicator isn't present in an app created from the Blazor Web App project template. A new loading progress indicator feature is planned for a future release of .NET. In the meantime, an app can adopt custom code to create a loading progress indicator. For more information, see <xref:blazor/fundamentals/startup#client-side-loading-indicators>.
An app can adopt custom code to create a loading progress indicator. For more information, see <xref:blazor/fundamentals/startup#client-side-loading-indicators>.
21 changes: 5 additions & 16 deletions aspnetcore/blazor/file-uploads.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,6 @@ await blobContainerClient.UploadBlobAsync(

A component that receives an image file can call the <xref:Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions.RequestImageFileAsync%2A?displayProperty=nameWithType> convenience method on the file to resize the image data within the browser's JavaScript runtime before the image is streamed into the app. Use cases for calling <xref:Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions.RequestImageFileAsync%2A> are most appropriate for Blazor WebAssembly apps.

:::moniker range="< aspnetcore-9.0"

<!-- UPDATE 10.0 Remove this section. Leave the coverage in the
Troubleshoot section. -->

## Autofac Inversion of Control (IoC) container users

If you're using the [Autofac Inversion of Control (IoC) container](https://autofac.org/) instead of the built-in ASP.NET Core dependency injection container, set <xref:Microsoft.AspNetCore.SignalR.HubOptions.DisableImplicitFromServicesParameters%2A> to `true` in the [server-side circuit handler hub options](xref:blazor/fundamentals/signalr#server-side-circuit-handler-options). For more information, see [FileUpload: Did not receive any data in the allotted time (`dotnet/aspnetcore` #38842)](https://github.com/dotnet/aspnetcore/issues/38842#issuecomment-1342540950).

:::moniker-end

## File size read and upload limits

:::moniker range=">= aspnetcore-9.0"
Expand Down Expand Up @@ -293,7 +282,7 @@ public class UploadResult

A security best practice for production apps is to avoid sending error messages to clients that might reveal sensitive information about an app, server, or network. Providing detailed error messages can aid a malicious user in devising attacks on an app, server, or network. The example code in this section only sends back an error code number (`int`) for display by the component client-side if a server-side error occurs. If a user requires assistance with a file upload, they provide the error code to support personnel for support ticket resolution without ever knowing the exact cause of the error.

<!-- UPDATE 10.0 HOLD moniker range="< aspnetcore-10.0"
<!-- UPDATE 11.0 HOLD moniker range="< aspnetcore-11.0"
https://github.com/dotnet/aspnetcore/issues/47301
No doc issue yet, but tracked by ...
https://github.com/dotnet/AspNetCore.Docs/issues/34437 -->
Expand All @@ -302,9 +291,9 @@ The following `LazyBrowserFileStream` class defines a custom stream type that la

`LazyBrowserFileStream.cs`:

<!-- UPDATE 10.0 HOLD moniker-end -->
<!-- UPDATE 11.0 HOLD moniker-end -->

<!-- UPDATE 10.0 HOLD for next line: < aspnetcore-10.0 -->
<!-- UPDATE 11.0 HOLD for next line: < aspnetcore-11.0 -->

:::moniker range=">= aspnetcore-8.0"

Expand Down Expand Up @@ -369,7 +358,7 @@ The following `FileUpload2` component:

:::moniker-end

<!-- UPDATE 10.0 HOLD for the next line: < aspnetcore-10.0 -->
<!-- UPDATE 11.0 HOLD for the next line: < aspnetcore-11.0 -->

:::moniker range=">= aspnetcore-8.0"

Expand Down Expand Up @@ -1297,7 +1286,7 @@ Possible causes:

* Not reading the stream to completion. This isn't a framework issue. Trap the exception and investigate it further in your local environment/network.

<!-- UPDATE 10.0 - Version the following out at 10.0 when the
<!-- UPDATE 11.0 - Version the following out at 11.0 when the
the `LazyBrowserFileStream` class is dropped
because the underlying problem is fixed. -->

Expand Down
4 changes: 2 additions & 2 deletions aspnetcore/blazor/forms/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -448,9 +448,9 @@ jQuery validation isn't supported in Razor components. We recommend any of the f
* Use native HTML validation attributes (see [Client-side form validation](https://developer.mozilla.org/docs/Learn/Forms/Form_validation)).
* Adopt a third-party validation JavaScript library.

<!-- UPDATE 10.0 - Remove if the feature is realized. -->
<!-- UPDATE 11.0 - Remove if the feature is realized or dropped. -->

For statically-rendered forms on the server, a new mechanism for client-side validation is under consideration for .NET 10 in late 2025. For more information, see [Create server rendered forms with client validation using Blazor without a circuit (`dotnet/aspnetcore` #51040)](https://github.com/dotnet/aspnetcore/issues/51040).
For statically-rendered forms on the server, a new mechanism for client-side validation is under consideration. For more information, see [Create server rendered forms with client validation using Blazor without a circuit (`dotnet/aspnetcore` #51040)](https://github.com/dotnet/aspnetcore/issues/51040).

## Additional resources

Expand Down
2 changes: 0 additions & 2 deletions aspnetcore/blazor/fundamentals/dependency-injection.md
Original file line number Diff line number Diff line change
Expand Up @@ -355,8 +355,6 @@ public IMyService MyService { get; set; }

## Utility base component classes to manage a DI scope

<!-- UPDATE 10.0 - PU design is under consideration for .NET 10. -->

In non-Blazor ASP.NET Core apps, scoped and transient services are typically scoped to the current request. After the request completes, scoped and transient services are disposed by the DI system.

In interactive server-side Blazor apps, the DI scope lasts for the duration of the circuit (the SignalR connection between the client and server), which can result in scoped and disposable transient services living much longer than the lifetime of a single component. Therefore, don't directly inject a scoped service into a component if you intend the service lifetime to match the lifetime of the component. Transient services injected into a component that don't implement <xref:System.IDisposable> are garbage collected when the component is disposed. However, injected transient services *that implement <xref:System.IDisposable>* are maintained by the DI container for the lifetime of the circuit, which prevents service garbage collection when the component is disposed and results in a memory leak. An alternative approach for scoped services based on the <xref:Microsoft.AspNetCore.Components.OwningComponentBase> type is described later in this section, and disposable transient services shouldn't be used at all. For more information, see [Design for solving transient disposables on Blazor Server (`dotnet/aspnetcore` #26676)](https://github.com/dotnet/aspnetcore/issues/26676).
Expand Down
4 changes: 0 additions & 4 deletions aspnetcore/blazor/fundamentals/environments.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ uid: blazor/fundamentals/environments
This article explains how to configure and read the [environment](xref:fundamentals/environments) in a Blazor app.

When running an app locally, the environment defaults to `Development`. When the app is published, the environment defaults to `Production`.

<!-- UPDATE 10.0 The underlying problem with app settings filename
case sensitivity is tracked for 10.0 by ...
https://github.com/dotnet/aspnetcore/issues/25152 -->

We recommend the following conventions:

Expand Down
2 changes: 1 addition & 1 deletion aspnetcore/blazor/fundamentals/signalr.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ app.MapBlazorHub(options =>
});
```

<!-- UPDATE 10.0 - The following is scheduled for a fix in .NET 10.
<!-- UPDATE 11.0 - The following is scheduled for a fix in .NET 11.
Tracked by: https://github.com/dotnet/aspnetcore/issues/63520 -->

Configuring the hub used by <xref:Microsoft.AspNetCore.Builder.ServerRazorComponentsEndpointConventionBuilderExtensions.AddInteractiveServerRenderMode%2A> with <xref:Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions.MapBlazorHub%2A> fails with an <xref:System.Reflection.AmbiguousMatchException>:
Expand Down
2 changes: 1 addition & 1 deletion aspnetcore/blazor/host-and-deploy/configure-trimmer.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Blazor WebAssembly performs [Intermediate Language (IL)](/dotnet/standard/glossa

## Default trimmer granularity

<!-- UPDATE 10.0 - HOLD until https://github.com/dotnet/aspnetcore/issues/49409
<!-- UPDATE 11.0 - HOLD until https://github.com/dotnet/aspnetcore/issues/49409
is addressed.

The default trimmer granularity for Blazor apps is `partial`. To trim all assemblies, change the granularity to `full` in the app's project file:
Expand Down
5 changes: 0 additions & 5 deletions aspnetcore/blazor/webassembly-build-tools-and-aot.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,10 @@ To target a prior .NET release with a given .NET SDK, install the `wasm-tools-ne

The following list shows which workload to install for each .NET SDK, depending on the apps that you plan to target. Although multiple rows may contain the same workload name, the workloads always differ slightly for each particular .NET SDK.

<!-- UPDATE 10.0 - Surface new content

* Using the .NET 10 SDK
* Targeting .NET 10 requires `wasm-tools`.
* Targeting .NET 9 requires `wasm-tools-net9`.
* Targeting .NET 8 requires `wasm-tools-net8`.

-->

* Using the .NET 9 SDK
* Targeting .NET 9 requires `wasm-tools`.
* Targeting .NET 8 requires `wasm-tools-net8`.
Expand Down