diff --git a/.github/workflows/blazor-issue-processing.yml b/.github/workflows/blazor-issue-processing.yml index 28ddc0351ad7..082d1a3f7461 100644 --- a/.github/workflows/blazor-issue-processing.yml +++ b/.github/workflows/blazor-issue-processing.yml @@ -22,8 +22,8 @@ jobs: issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - body: `### ๐Ÿ‚๐ŸŽƒ๐Ÿฎ *Autumn Skies and Pumpkin Pies!* ๐Ÿฅงโ˜•๐Ÿ‚ - Stand by! A green dinosaur ๐Ÿฆ– will arrive shortly to assist.` + body: `### ๐Ÿ‚๐ŸŽ ***Happy Holidays!*** โ„๏ธโ›„ + *Stand-by!* ... A green dinosaur ๐Ÿฆ– will be along shortly to assist.` }) await github.rest.issues.addLabels({ issue_number: context.issue.number, diff --git a/aspnetcore/blazor/debug.md b/aspnetcore/blazor/debug.md index 0b4342d22490..a8f9dc694233 100644 --- a/aspnetcore/blazor/debug.md +++ b/aspnetcore/blazor/debug.md @@ -386,7 +386,7 @@ The additional options in the following table only apply to **hosted Blazor WebA *The guidance in this section applies debugging Blazor WebAssembly apps in:* * ***Google Chrome*** *running on Windows or macOS.* -* ***Microsoft Edge** *running on Windows.* +* ***Microsoft Edge*** *running on Windows.* 1. Run the app in a command shell with `dotnet watch` (or `dotnet run`). 1. Launch a browser and navigate to the app's URL. diff --git a/aspnetcore/blazor/webassembly-lazy-load-assemblies.md b/aspnetcore/blazor/webassembly-lazy-load-assemblies.md index 966d788c6ab6..a89174db8f3d 100644 --- a/aspnetcore/blazor/webassembly-lazy-load-assemblies.md +++ b/aspnetcore/blazor/webassembly-lazy-load-assemblies.md @@ -71,7 +71,7 @@ Blazor's component designa Logic is implemented inside to determine the assemblies to load with . Options for how to structure the logic include: * Conditional checks inside the method. -* A lookup table that maps routes to assembly names, either injected into the component or implemented within the [`@code`](xref:mvc/views/razor#code) block. +* A lookup table that maps routes to assembly names, either injected into the component or implemented within the component's code. In the following example: @@ -336,13 +336,9 @@ Create a standalone Blazor WebAssembly app to demonstrate lazy loading of a Razo Add an ASP.NET Core class library project to the solution: -* Visual Studio: Right-click the solution file in **Solution Explorer** and select **Add** > **New project**. From the dialog of new project types, select **Razor Class Library**. Name the project `GrantImaharaRobotControls`. Do **not** select the **Support pages and view** checkbox. +* Visual Studio: Right-click the solution file in **Solution Explorer** and select **Add** > **New project**. From the dialog of new project types, select **Razor Class Library**. Name the project `GrantImaharaRobotControls`. Do **not** select the **Support pages and views** checkbox. * Visual Studio Code/.NET CLI: Execute `dotnet new razorclasslib -o GrantImaharaRobotControls` from a command prompt. The `-o|--output` option creates a folder and names the project `GrantImaharaRobotControls`. -The example component presented later in this section uses a [Blazor form](xref:blazor/forms/index). In the RCL project, add the [`Microsoft.AspNetCore.Components.Forms`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.Forms) package to the project. - -[!INCLUDE[](~/includes/package-reference.md)] - Create a `HandGesture` class in the RCL with a `ThumbUp` method that hypothetically makes a robot perform a thumbs-up gesture. The method accepts an argument for the axis, `Left` or `Right`, as an [`enum`](/dotnet/csharp/language-reference/builtin-types/enum). The method returns `true` on success. `HandGesture.cs`: diff --git a/aspnetcore/fundamentals/owin.md b/aspnetcore/fundamentals/owin.md index 2d6f7fc6ee9f..2eaa14ba7bba 100644 --- a/aspnetcore/fundamentals/owin.md +++ b/aspnetcore/fundamentals/owin.md @@ -90,58 +90,6 @@ app.UseOwin(pipeline => }); ``` - - -## Run ASP.NET Core on an OWIN-based server and use its WebSockets support - -Another example of how OWIN-based servers' features can be leveraged by ASP.NET Core is access to features like WebSockets. The .NET OWIN web server used in the previous example has support for WebSockets built in, which can be leveraged by an ASP.NET Core application. The example below shows a simple web app that supports WebSockets and echoes back everything sent to the server through WebSockets. - -```csharp -public class Startup -{ - public void Configure(IApplicationBuilder app) - { - app.Use(async (context, next) => - { - if (context.WebSockets.IsWebSocketRequest) - { - WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync(); - await EchoWebSocket(webSocket); - } - else - { - await next(); - } - }); - - app.Run(context => - { - return context.Response.WriteAsync("Hello World"); - }); - } - - private async Task EchoWebSocket(WebSocket webSocket) - { - byte[] buffer = new byte[1024]; - WebSocketReceiveResult received = await webSocket.ReceiveAsync( - new ArraySegment(buffer), CancellationToken.None); - - while (!webSocket.CloseStatus.HasValue) - { - // Echo anything we receive - await webSocket.SendAsync(new ArraySegment(buffer, 0, received.Count), - received.MessageType, received.EndOfMessage, CancellationToken.None); - - received = await webSocket.ReceiveAsync(new ArraySegment(buffer), - CancellationToken.None); - } - - await webSocket.CloseAsync(webSocket.CloseStatus.Value, - webSocket.CloseStatusDescription, CancellationToken.None); - } -} -``` - ## OWIN environment You can construct an OWIN environment using the `HttpContext`. diff --git a/aspnetcore/performance/caching/hybrid.md b/aspnetcore/performance/caching/hybrid.md index 6a7f1612caed..6c333e68b4e0 100644 --- a/aspnetcore/performance/caching/hybrid.md +++ b/aspnetcore/performance/caching/hybrid.md @@ -73,6 +73,9 @@ When an entry is removed, it is removed from both the primary and secondary cach ## Remove cache entries by tag +> [!IMPORTANT] +> This feature is still under development. If you try to remove entries by tag, you will notice that it doesn't have any effect. + Tags can be used to group cache entries and invalidate them together. Set tags when calling `GetOrCreateAsync`, as shown in the following example: @@ -145,6 +148,9 @@ For more information, see the [HybridCache serialization sample app](https://git By default `HybridCache` uses for its primary cache storage. Cache entries are stored in-process, so each server has a separate cache that is lost whenever the server process is restarted. For secondary out-of-process storage, such as Redis or SQL Server, `HybridCache` uses [the configured `IDistributedCache` implementation](xref:performance/caching/distributed), if any. But even without an `IDistributedCache`implementation, the `HybridCache` service still provides in-process caching and [stampede protection](https://en.wikipedia.org/wiki/Cache_stampede). +> [!NOTE] +> When invalidating cache entries by key or by tags, they are invalidated in the current server and in the secondary out-of-process storage. However, the in-memory cache in other servers isn't affected. + ## Optimize performance To optimize performance, configure `HybridCache` to reuse objects and avoid `byte[]` allocations. diff --git a/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Index.cshtml b/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Index.cshtml index b5f0c15fced0..f9ff8d424a16 100644 --- a/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Index.cshtml +++ b/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Index.cshtml @@ -6,5 +6,5 @@ diff --git a/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Shared/_Layout.cshtml b/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Shared/_Layout.cshtml index d3e265e76ee4..d891ab97ffce 100644 --- a/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Shared/_Layout.cshtml +++ b/aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Shared/_Layout.cshtml @@ -1,4 +1,4 @@ -๏ปฟ@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Authorization @inject IAuthorizationService AuthorizationService @@ -6,19 +6,21 @@ @ViewData["Title"] - RazorPageOidcClient + - + +