Skip to content

Commit 2fee83c

Browse files
authored
Merge pull request #36310 from dotnet/main
2 parents 095fdc9 + 2187c92 commit 2fee83c

File tree

29 files changed

+821
-66
lines changed

29 files changed

+821
-66
lines changed

.openpublishing.redirection.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1649,10 +1649,30 @@
16491649
"redirect_url": "/aspnet/core/fundamentals/error-handling-api",
16501650
"redirect_document_id": false
16511651
},
1652-
{
1652+
{
16531653
"source_path": "aspnetcore/fundamentals/map-static-files.md",
16541654
"redirect_url": "/aspnet/core/fundamentals/static-files",
16551655
"redirect_document_id": false
1656+
},
1657+
{
1658+
"source_path": "aspnetcore/migration/60-70.md",
1659+
"redirect_url": "/aspnet/core/migration/60-to-70",
1660+
"redirect_document_id": false
1661+
},
1662+
{
1663+
"source_path": "aspnetcore/migration/70-80.md",
1664+
"redirect_url": "/aspnet/core/migration/70-to-80",
1665+
"redirect_document_id": false
1666+
},
1667+
{
1668+
"source_path": "aspnetcore/migration/80-90.md",
1669+
"redirect_url": "/aspnet/core/migration/80-to-90",
1670+
"redirect_document_id": false
1671+
},
1672+
{
1673+
"source_path": "aspnetcore/migration/20_21.md",
1674+
"redirect_url": "/aspnet/core/migration/20-to-21",
1675+
"redirect_document_id": false
16561676
}
16571677
]
16581678
}

aspnetcore/blazor/call-web-api.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,24 @@ The solution includes a demonstration of obtaining weather data securely via an
358358
359359
## Disposal of `HttpRequestMessage`, `HttpResponseMessage`, and `HttpClient`
360360
361-
An <xref:System.Net.Http.HttpRequestMessage> without a body doesn't require explicit disposal with a [`using` declaration (C# 8 or later)](/dotnet/csharp/language-reference/proposals/csharp-8.0/using) or a [`using` block (all C# releases)](/dotnet/csharp/language-reference/keywords/using), but we recommend disposing with every use for the following reasons:
361+
An <xref:System.Net.Http.HttpRequestMessage> without a body doesn't require explicit disposal. However, you can dispose of it with either of the following patterns:
362+
363+
* `using` declaration (C# 8 or later):
364+
365+
```csharp
366+
using var request = new HttpRequestMessage(...);
367+
```
368+
369+
* [`using` block (all C# releases)](/dotnet/csharp/language-reference/keywords/using):
370+
371+
```csharp
372+
using (var request = new HttpRequestMessage(...))
373+
{
374+
...
375+
}
376+
```
377+
378+
We recommend disposing of every <xref:System.Net.Http.HttpRequestMessage> with every use for the following reasons:
362379
363380
* To gain a performance improvement by avoiding finalizers.
364381
* It hardens the code for the future in case a request body is ever added to an <xref:System.Net.Http.HttpRequestMessage> that didn't initially have one.

aspnetcore/blazor/components/quickgrid.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Set the `QuickGrid` component's <xref:Microsoft.AspNetCore.Components.QuickGrid.
127127
<QuickGrid Items="..." Pagination="pagination">
128128
```
129129

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

133133
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`:

aspnetcore/blazor/components/rendering.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,4 @@ The state manager approach is similar to the earlier case with <xref:System.Time
349349

350350
## WebAssembly loading progress indicator for Blazor Web Apps
351351

352-
<!-- UPDATE 10.0 Will be removed for a new feature in this area.
353-
Tracked by: https://github.com/dotnet/aspnetcore/issues/49056 -->
354-
355-
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>.
352+
An app can adopt custom code to create a loading progress indicator. For more information, see <xref:blazor/fundamentals/startup#client-side-loading-indicators>.

aspnetcore/blazor/file-uploads.md

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,6 @@ await blobContainerClient.UploadBlobAsync(
9898

9999
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.
100100

101-
:::moniker range="< aspnetcore-9.0"
102-
103-
<!-- UPDATE 10.0 Remove this section. Leave the coverage in the
104-
Troubleshoot section. -->
105-
106-
## Autofac Inversion of Control (IoC) container users
107-
108-
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).
109-
110-
:::moniker-end
111-
112101
## File size read and upload limits
113102

114103
:::moniker range=">= aspnetcore-9.0"
@@ -293,7 +282,7 @@ public class UploadResult
293282

294283
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.
295284

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

303292
`LazyBrowserFileStream.cs`:
304293

305-
<!-- UPDATE 10.0 HOLD moniker-end -->
294+
<!-- UPDATE 11.0 HOLD moniker-end -->
306295

307-
<!-- UPDATE 10.0 HOLD for next line: < aspnetcore-10.0 -->
296+
<!-- UPDATE 11.0 HOLD for next line: < aspnetcore-11.0 -->
308297

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

@@ -369,7 +358,7 @@ The following `FileUpload2` component:
369358

370359
:::moniker-end
371360

372-
<!-- UPDATE 10.0 HOLD for the next line: < aspnetcore-10.0 -->
361+
<!-- UPDATE 11.0 HOLD for the next line: < aspnetcore-11.0 -->
373362

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

@@ -1297,7 +1286,7 @@ Possible causes:
12971286

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

1300-
<!-- UPDATE 10.0 - Version the following out at 10.0 when the
1289+
<!-- UPDATE 11.0 - Version the following out at 11.0 when the
13011290
the `LazyBrowserFileStream` class is dropped
13021291
because the underlying problem is fixed. -->
13031292

aspnetcore/blazor/forms/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,9 +448,9 @@ jQuery validation isn't supported in Razor components. We recommend any of the f
448448
* Use native HTML validation attributes (see [Client-side form validation](https://developer.mozilla.org/docs/Learn/Forms/Form_validation)).
449449
* Adopt a third-party validation JavaScript library.
450450

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

453-
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).
453+
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).
454454

455455
## Additional resources
456456

aspnetcore/blazor/fundamentals/dependency-injection.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,6 @@ public IMyService MyService { get; set; }
355355

356356
## Utility base component classes to manage a DI scope
357357

358-
<!-- UPDATE 10.0 - PU design is under consideration for .NET 10. -->
359-
360358
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.
361359

362360
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).

aspnetcore/blazor/fundamentals/environments.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ uid: blazor/fundamentals/environments
1515
This article explains how to configure and read the [environment](xref:fundamentals/environments) in a Blazor app.
1616

1717
When running an app locally, the environment defaults to `Development`. When the app is published, the environment defaults to `Production`.
18-
19-
<!-- UPDATE 10.0 The underlying problem with app settings filename
20-
case sensitivity is tracked for 10.0 by ...
21-
https://github.com/dotnet/aspnetcore/issues/25152 -->
2218

2319
We recommend the following conventions:
2420

aspnetcore/blazor/fundamentals/signalr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ app.MapBlazorHub(options =>
316316
});
317317
```
318318

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

322322
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>:

aspnetcore/blazor/host-and-deploy/configure-trimmer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Blazor WebAssembly performs [Intermediate Language (IL)](/dotnet/standard/glossa
1818

1919
## Default trimmer granularity
2020

21-
<!-- UPDATE 10.0 - HOLD until https://github.com/dotnet/aspnetcore/issues/49409
21+
<!-- UPDATE 11.0 - HOLD until https://github.com/dotnet/aspnetcore/issues/49409
2222
is addressed.
2323
2424
The default trimmer granularity for Blazor apps is `partial`. To trim all assemblies, change the granularity to `full` in the app's project file:

0 commit comments

Comments
 (0)