Skip to content
Closed
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 .github/ISSUE_TEMPLATE/doc-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Check the .NET target framework(s) being used, and include the version number(s)
* [ ] .NET Framework
* [ ] .NET Standard

If using the .NET Core SDK, include `dotnet --info` output. If using .NET Framework without the .NET Core SDK, include info from Visual Studio's **Help** > **About Microsoft Visual Studio** dialog.
If using the .NET SDK, include `dotnet --info` output. If using .NET Framework without the .NET SDK, include info from Visual Studio's **Help** > **About Microsoft Visual Studio** dialog.

<details>
<summary><strong>dotnet --info output</strong> or <strong>About VS info</strong></summary>
Expand Down
7 changes: 6 additions & 1 deletion .openpublishing.redirection.json
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,7 @@
},
{
"source_path": "aspnetcore/choose-aspnet-framework.md",
"redirect_url": "/aspnet/core/fundamentals/choose-aspnet-framework",
"redirect_url": "/aspnet/core/introduction-to-aspnet-core",
"redirect_document_id": false
},
{
Expand Down Expand Up @@ -1572,6 +1572,11 @@
"source_path": "aspnetcore/getting-started/index.md",
"redirect_url": "/aspnet/core/get-started",
"redirect_document_id": false
},
{
"source_path": "aspnetcore/fundamentals/choose-aspnet-framework.md",
"redirect_url": "/aspnet/core/introduction-to-aspnet-core",
"redirect_document_id": false
}
]
}
2 changes: 1 addition & 1 deletion aspnetcore/blazor/advanced-scenarios.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,5 +142,5 @@ This is a trivial example. In more realistic cases with complex and deeply neste
* The necessary information doesn't exist to permit the framework to generate sequence numbers automatically at runtime unless the information is captured at compile time.
* Don't write long blocks of manually-implemented <xref:Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder> logic. Prefer `.razor` files and allow the compiler to deal with the sequence numbers. If you're unable to avoid manual <xref:Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder> logic, split long blocks of code into smaller pieces wrapped in <xref:Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.OpenRegion%2A>/<xref:Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.CloseRegion%2A> calls. Each region has its own separate space of sequence numbers, so you can restart from zero (or any other arbitrary number) inside each region.
* If sequence numbers are hardcoded, the diff algorithm only requires that sequence numbers increase in value. The initial value and gaps are irrelevant. One legitimate option is to use the code line number as the sequence number, or start from zero and increase by ones or hundreds (or any preferred interval).
* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realises you're in a loop.
* For loops, the sequence numbers should increase in your source code, not in terms of runtime behavior. The fact that, at runtime, the numbers repeat is how the diffing system realizes you're in a loop.
* Blazor uses sequence numbers, while other tree-diffing UI frameworks don't use them. Diffing is far faster when sequence numbers are used, and Blazor has the advantage of a compile step that deals with sequence numbers automatically for developers authoring `.razor` files.
2 changes: 1 addition & 1 deletion aspnetcore/blazor/call-web-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ In the app's `Program` file, call:

* <xref:Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthenticationBuilder.EnableTokenAcquisitionToCallDownstreamApi%2A>: Enables token acquisition to call web APIs.
* `AddDownstreamApi`: Microsoft Identity Web packages provide API to create a named downstream web service for making web API calls. <xref:Microsoft.Identity.Abstractions.IDownstreamApi> is injected into a server-side class, which is used to call <xref:Microsoft.Identity.Abstractions.IDownstreamApi.CallApiForUserAsync%2A> to obtain weather data from an external web API (`MinimalApiJwt` project).
* <xref:Microsoft.Identity.Web.TokenCacheProviders.Distributed.DistributedTokenCacheAdapterExtension.AddDistributedTokenCaches%2A>: Adds the .NET Core distributed token caches to the service collection.
* <xref:Microsoft.Identity.Web.TokenCacheProviders.Distributed.DistributedTokenCacheAdapterExtension.AddDistributedTokenCaches%2A>: Adds the .NET distributed token caches to the service collection.
* <xref:Microsoft.Extensions.DependencyInjection.MemoryCacheServiceCollectionExtensions.AddDistributedMemoryCache%2A>: Adds a default implementation of <xref:Microsoft.Extensions.Caching.Distributed.IDistributedCache> that stores cache items in memory.
* Configure the distributed token cache options (<xref:Microsoft.Identity.Web.TokenCacheProviders.Distributed.MsalDistributedTokenCacheAdapterOptions>):
* In development for debugging purposes, you can disable the L1 cache by setting <xref:Microsoft.Identity.Web.TokenCacheProviders.Distributed.MsalDistributedTokenCacheAdapterOptions.DisableL1Cache%2A> to `true`. ***Be sure to reset it back to `false` for production.***
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ The GitHub-hosted Ubuntu (latest) server has a version of the .NET SDK pre-insta
1. Go to the [**Available Images** section of the `actions/runner-images` GitHub repository](https://github.com/actions/runner-images?tab=readme-ov-file#available-images).
1. Locate the `ubuntu-latest` image, which is the first table row.
1. Select the link in the `Included Software` column.
1. Scroll down to the *.NET Tools* section to see the .NET Core SDK installed with the image.
1. Scroll down to the *.NET Tools* section to see the .NET SDK installed with the image.

## Deployment notes

Expand Down
6 changes: 3 additions & 3 deletions aspnetcore/blazor/hosting-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ On the client, the Blazor script establishes the SignalR connection with the ser
The Blazor Server hosting model offers several benefits:

* Download size is significantly smaller than when the Blazor WebAssembly hosting model is used, and the app loads much faster.
* The app takes full advantage of server capabilities, including the use of .NET Core APIs.
* .NET Core on the server is used to run the app, so existing .NET tooling, such as debugging, works as expected.
* The app takes full advantage of server capabilities, including the use of .NET APIs.
* .NET on the server is used to run the app, so existing .NET tooling, such as debugging, works as expected.
* Thin clients are supported. For example, Blazor Server works with browsers that don't support WebAssembly and on resource-constrained devices.
* The app's .NET/C# code base, including the app's component code, isn't served to clients.

Expand Down Expand Up @@ -148,7 +148,7 @@ WebAssembly-rendered Razor components can use [native dependencies](xref:blazor/

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

Blazor WebAssembly includes support for trimming unused code from .NET Core framework libraries. For more information, see <xref:blazor/globalization-localization>.
Blazor WebAssembly includes support for trimming unused code from .NET libraries. For more information, see <xref:blazor/globalization-localization>.

:::moniker-end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ One approach to prevent lingering cookies and site data from interfering with te

### App upgrades

A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:
A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:

1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell.
1. Delete the project's `bin` and `obj` folders.
Expand Down
2 changes: 1 addition & 1 deletion aspnetcore/blazor/security/includes/troubleshoot-wasm.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ One approach to prevent lingering cookies and site data from interfering with te

### App upgrades

A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:
A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:

1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell.
1. Delete the project's `bin` and `obj` folders.
Expand Down
4 changes: 2 additions & 2 deletions aspnetcore/blazor/security/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ Permissible authentication values for the `{AUTHENTICATION}` placeholder are sho

:::moniker-end

For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide.
For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide.

# [.NET CLI](#tab/net-cli/)

Expand Down Expand Up @@ -219,7 +219,7 @@ Permissible authentication values for the `{AUTHENTICATION}` placeholder are sho

For more information:

* See the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide.
* See the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide.
* Execute the help command for the template in a command shell:

```dotnetcli
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1544,7 +1544,7 @@ For more information, see [`AuthenticationService.ts` in the `dotnet/aspnetcore`

If an app requires a custom version of the [Microsoft Authentication Library for JavaScript (`MSAL.js`)](https://www.npmjs.com/package/@azure/msal-browser), perform the following steps:

1. Confirm the system has the latest developer .NET SDK or obtain and install the latest developer SDK from [.NET Core SDK: Installers and Binaries](https://github.com/dotnet/installer#installers-and-binaries). Configuration of internal NuGet feeds isn't required for this scenario.
1. Confirm the system has the latest developer .NET SDK or obtain and install the latest developer SDK from [.NET SDK: Installers and Binaries](https://github.com/dotnet/sdk#installing-the-sdk). Configuration of internal NuGet feeds isn't required for this scenario.
1. Set up the `dotnet/aspnetcore` GitHub repository for development following the documentation at [Build ASP.NET Core from Source](https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md). Fork and clone or download a ZIP archive of the [`dotnet/aspnetcore` GitHub repository](https://github.com/dotnet/aspnetcore).
1. Open the `src/Components/WebAssembly/Authentication.Msal/src/Interop/package.json` file and set the desired version of `@azure/msal-browser`. For a list of released versions, visit the [`@azure/msal-browser` npm website](https://www.npmjs.com/package/@azure/msal-browser) and select the **Versions** tab.
1. Build the `Authentication.Msal` project in the `src/Components/WebAssembly/Authentication.Msal/src` folder with the `yarn build` command in a command shell.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The output location specified with the optional `-o|--output` option creates a p

Avoid using dashes (`-`) in the project name that break the formation of the OIDC app identifier. Logic in the Blazor WebAssembly project template uses the project name for an OIDC app identifier in the solution's configuration, and dashes aren't permitted in an OIDC app identifier. Pascal case (`BlazorSample`) or underscores (`Blazor_Sample`) are acceptable alternatives.

For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide.
For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide.

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ dotnet new blazorwasm -au Individual -o {PROJECT NAME}

The output location specified with the `-o|--output` option creates a project folder if it doesn't exist and becomes part of the project's name.

For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Core Guide.
For more information, see the [`dotnet new`](/dotnet/core/tools/dotnet-new) command in the .NET Guide.

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ One approach to prevent lingering cookies and site data from interfering with te

### App upgrades

A functioning app may fail immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:
A functioning app may fail immediately after upgrading either the .NET SDK on the development machine or changing package versions within the app. In some cases, incoherent packages may break an app when performing major upgrades. Most of these issues can be fixed by following these instructions:

1. Clear the local system's NuGet package caches by executing [`dotnet nuget locals all --clear`](/dotnet/core/tools/dotnet-nuget-locals) from a command shell.
1. Delete the project's `bin` and `obj` folders.
Expand Down
6 changes: 3 additions & 3 deletions aspnetcore/blazor/tooling.md
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@ To include sample pages and a layout based on Bootstrap styling, use the **Inclu
### Additional guidance on template options

* <xref:blazor/components/render-modes>
* The *.NET default templates for dotnet new* article in the .NET Core documentation:
* The *.NET default templates for dotnet new* article in the .NET documentation:
* [`blazor`](/dotnet/core/tools/dotnet-new-sdk-templates#blazor)
* [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm)
* Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell:
Expand All @@ -580,7 +580,7 @@ To include sample pages and a layout based on Bootstrap styling, use the **Inclu

For more information on template options, see the following resources:

* The *.NET default templates for dotnet new* article in the .NET Core documentation:
* The *.NET default templates for dotnet new* article in the .NET documentation:
* [`blazorserver`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorserver) (includes `blazorserver-empty` options)
* [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm) (includes `blazorwasm-empty` options)
* Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell:
Expand All @@ -595,7 +595,7 @@ For more information on template options, see the following resources:

For more information on template options, see the following resources:

* The *.NET default templates for dotnet new* article in the .NET Core documentation:
* The *.NET default templates for dotnet new* article in the .NET documentation:
* [`blazorserver`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorserver)
* [`blazorwasm`](/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm)
* Passing the help option (`-h` or `--help`) to the [`dotnet new`](/dotnet/core/tools/dotnet-new) CLI command in a command shell:
Expand Down
2 changes: 1 addition & 1 deletion aspnetcore/blazor/tutorials/movie-database-app/part-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ Stop the app using the following approach:
EF Core documentation:

* [Entity Framework Core](/ef/core/)
* [Entity Framework Core tools reference - .NET Core CLI](/ef/core/cli/dotnet)
* [Entity Framework Core tools reference - .NET CLI](/ef/core/cli/dotnet)
* [Data Types](/ef/core/modeling/relational/data-types)
* <xref:Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync%2A>: The API document includes basic information on how entities are saved and change detection.
* [Environment-based `Startup` class and methods](xref:fundamentals/environments#environment-based-startup-class-and-methods)
Expand Down
2 changes: 1 addition & 1 deletion aspnetcore/client-side/libman/libman-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dotnet tool install -g Microsoft.Web.LibraryManager.Cli

[!INCLUDE[](~/includes/dotnet-tool-install-arch-options.md)]

A [.NET Core Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [Microsoft.Web.LibraryManager.Cli](https://www.nuget.org/packages/Microsoft.Web.LibraryManager.Cli/) NuGet package.
A [.NET Global Tool](/dotnet/core/tools/global-tools#install-a-global-tool) is installed from the [`Microsoft.Web.LibraryManager.Cli`](https://www.nuget.org/packages/Microsoft.Web.LibraryManager.Cli/) NuGet package.

## Usage

Expand Down
4 changes: 2 additions & 2 deletions aspnetcore/data/ef-rp/sort-filter-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())`

The preceding code would ensure that the filter is case-insensitive even if the `Where` method is called on an `IEnumerable` or runs on SQLite.

When `Contains` is called on an `IEnumerable` collection, the .NET Core implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used.
When `Contains` is called on an `IEnumerable` collection, the .NET implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used.

Calling `Contains` on an `IQueryable` is usually preferable for performance reasons. With `IQueryable`, the filtering is done by the database server. If an `IEnumerable` is created first, all the rows have to be returned from the database server.

Expand Down Expand Up @@ -377,7 +377,7 @@ For example, the .NET Framework implementation of `Contains` performs a case-sen

`Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())`

The preceding code would ensure that results are case-insensitive if the code changes to use `IEnumerable`. When `Contains` is called on an `IEnumerable` collection, the .NET Core implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. Returning an `IEnumerable` from a repository can have a significant performance penalty:
The preceding code would ensure that results are case-insensitive if the code changes to use `IEnumerable`. When `Contains` is called on an `IEnumerable` collection, the .NET implementation is used. When `Contains` is called on an `IQueryable` object, the database implementation is used. Returning an `IEnumerable` from a repository can have a significant performance penalty:

1. All the rows are returned from the DB server.
1. The filter is applied to all the returned rows in the application.
Expand Down
Loading
Loading