diff --git a/aspnetcore/blazor/globalization-localization.md b/aspnetcore/blazor/globalization-localization.md index 6606db0029ea..76ce3a036797 100644 --- a/aspnetcore/blazor/globalization-localization.md +++ b/aspnetcore/blazor/globalization-localization.md @@ -95,7 +95,9 @@ Loading a custom subset of locales in a Blazor WebAssembly app is supported in . ## Invariant globalization -If the app doesn't require localization, configure the app to support the invariant culture, which is generally based on United States English (`en-US`). Set the `InvariantGlobalization` property to `true` in the app's project file (`.csproj`): +*This section only applies to client-side Blazor scenarios.* + +If the app doesn't require localization, configure the app to support the invariant culture, which is generally based on United States English (`en-US`). Using invariant globalization reduces the app's download size and results in faster app startup. Set the `InvariantGlobalization` property to `true` in the app's project file (`.csproj`): ```xml @@ -124,6 +126,37 @@ Alternatively, configure invariant globalization with the following approaches: For more information, see [Runtime configuration options for globalization (.NET documentation)](/dotnet/core/run-time-config/globalization). +:::moniker range=">= aspnetcore-8.0" + +## Timezone information + +*This section only applies to client-side Blazor scenarios.* + +Adopting [invariant globalization](#invariant-globalization) only results in using non-localized timezone names. To trim timezone code and data, which reduces the app's download size and results in faster app startup, apply the `` MSBuild property with a value of `true` in the app's project file: + +```xml + + true + +``` + +> [!NOTE] +> [``](xref:blazor/performance#disable-unused-features) overrides an earlier `` setting. We recommend removing the `` setting. + +:::moniker-end + +:::moniker range="< aspnetcore-8.0" + +A data file is included to make timezone information correct. If the app doesn't require this feature, consider disabling it by setting the `` MSBuild property to `false` in the app's project file: + +```xml + + false + +``` + +:::moniker-end + ## Demonstration component The following `CultureExample1` component can be used to demonstrate Blazor globalization and localization concepts covered by this article. diff --git a/aspnetcore/blazor/performance.md b/aspnetcore/blazor/performance.md index 17ec2f2be113..383c75ab11a7 100644 --- a/aspnetcore/blazor/performance.md +++ b/aspnetcore/blazor/performance.md @@ -766,7 +766,7 @@ For migration guidance, see [How to migrate from `Newtonsoft.Json` to `System.Te ### Intermediate Language (IL) trimming -*This section only applies to Blazor WebAssembly apps.* +*This section only applies to client-side Blazor scenarios.* :::moniker range=">= aspnetcore-5.0" @@ -786,7 +786,7 @@ dotnet publish -c Release ### Lazy load assemblies -*This section only applies to Blazor WebAssembly apps.* +*This section only applies to client-side Blazor scenarios.* Load assemblies at runtime when the assemblies are required by a route. For more information, see . @@ -800,11 +800,30 @@ After an app is deployed, verify that the app serves compressed files. Inspect t ### Disable unused features -*This section only applies to Blazor WebAssembly apps.* +*This section only applies to client-side Blazor scenarios.* Blazor WebAssembly's runtime includes the following .NET features that can be disabled for a smaller payload size: -* A data file is included to make timezone information correct. If the app doesn't require this feature, consider disabling it by setting the `BlazorEnableTimeZoneSupport` MSBuild property in the app's project file to `false`: +* By default, Blazor WebAssembly carries globalization resources required to display values, such as dates and currency, in the user's culture. If the app doesn't require localization, you may [configure the app to support the invariant culture](xref:blazor/globalization-localization#invariant-globalization), which is based on the `en-US` culture. + +:::moniker range=">= aspnetcore-8.0" + +* Adopting [invariant globalization](xref:blazor/globalization-localization#invariant-globalization) only results in using non-localized timezone names. To trim timezone code and data from the app, apply the `` MSBuild property with a value of `true` in the app's project file: + + ```xml + + true + + ``` + + > [!NOTE] + > [``](xref:blazor/performance#disable-unused-features) overrides an earlier `` setting. We recommend removing the `` setting. + +:::moniker-end + +:::moniker range="< aspnetcore-8.0" + +* A data file is included to make timezone information correct. If the app doesn't require this feature, consider disabling it by setting the `` MSBuild property to `false` in the app's project file: ```xml @@ -812,6 +831,8 @@ Blazor WebAssembly's runtime includes the following .NET features that can be di ``` +:::moniker-end + :::moniker range="< aspnetcore-5.0" * Collation information is included to make APIs such as work correctly. If you're certain that the app doesn't require the collation data, consider disabling it by setting the `BlazorWebAssemblyPreserveCollationData` MSBuild property in the app's project file to `false`: @@ -823,5 +844,3 @@ Blazor WebAssembly's runtime includes the following .NET features that can be di ``` :::moniker-end - -* By default, Blazor WebAssembly carries globalization resources required to display values, such as dates and currency, in the user's culture. If the app doesn't require localization, you may [configure the app to support the invariant culture](xref:blazor/globalization-localization#invariant-globalization), which is based on the `en-US` culture. diff --git a/aspnetcore/client-side/bundling-and-minification.md b/aspnetcore/client-side/bundling-and-minification.md index c25a427d219f..0b9efd992cb3 100644 --- a/aspnetcore/client-side/bundling-and-minification.md +++ b/aspnetcore/client-side/bundling-and-minification.md @@ -17,7 +17,7 @@ This article explains the benefits of applying bundling and minification, includ Bundling and minification are two distinct performance optimizations you can apply in a web app. Used together, bundling and minification improve performance by reducing the number of server requests and reducing the size of the requested static assets. -Bundling and minification primarily improve the first page request load time. Once a web page has been requested, the browser caches the static assets (JavaScript, CSS, and images). So, bundling and minification don't improve performance when requesting the same page, or pages, on the same site requesting the same assets. If the expires header isn't set correctly on the assets and if bundling and minification isn't used, the browser's freshness heuristics mark the assets stale after a few days. Additionally, the browser requires a validation request for each asset. In this case, bundling and minification provide a performance improvement even after the first page request. +Bundling and minification primarily improve the first page request load time. Once a web page has been requested, the browser caches the static assets (JavaScript, CSS, and images). So, bundling and minification don't improve performance when requesting the same page, or pages, on the same site requesting the same assets. If the expires header isn't set correctly on the assets and if bundling and minification aren't used, the browser's freshness heuristics mark the assets stale after a few days. Additionally, the browser requires a validation request for each asset. In this case, bundling and minification provide a performance improvement even after the first page request. ### Bundling diff --git a/aspnetcore/client-side/dotnet-interop.md b/aspnetcore/client-side/dotnet-interop.md index 55b1a0635a9c..f18572360c85 100644 --- a/aspnetcore/client-side/dotnet-interop.md +++ b/aspnetcore/client-side/dotnet-interop.md @@ -124,7 +124,7 @@ The following is an example project file (`.csproj`) after configuration. The `{ * Specify `WasmMainJSPath` to point to a file on disk. This file is published with the app, but use of the file isn't required if you're integrating .NET into an existing JS app. - In the following example, the JS file on disk is `main.js`, but any JS filename is permissable: + In the following example, the JS file on disk is `main.js`, but any JS filename is permissible: ```xml main.js diff --git a/aspnetcore/security/authorization/policies.md b/aspnetcore/security/authorization/policies.md index 365ad35a9ac0..1f86b482693f 100644 --- a/aspnetcore/security/authorization/policies.md +++ b/aspnetcore/security/authorization/policies.md @@ -107,7 +107,7 @@ Apply policies to controllers by using the `[Authorize]` attribute with the poli If multiple policies are applied at the controller and action levels, ***all*** policies must pass before access is granted: -:::code language="csharp" source="~/security/authorization/policies/samples/6.0/AuthorizationPoliciesSample/Controllers/AtLeast21Controller.cs" id="snippet" highlight="1,4"::: +:::code language="csharp" source="~/security/authorization/policies/samples/6.0/AuthorizationPoliciesSample/Controllers/AtLeast21Controller2.cs" id="snippet" highlight="1,4"::: ## Apply policies to Razor Pages diff --git a/quest-config.json b/quest-config.json index 4b87f78adf01..b4a42edd456e 100644 --- a/quest-config.json +++ b/quest-config.json @@ -34,6 +34,10 @@ { "Label": "sfi-admin", "ParentNodeId": 271716 + }, + { + "Label": "sfi-images", + "ParentNodeId": 286370 } ], "DefaultParentNode": 227486,