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
16 changes: 12 additions & 4 deletions aspnetcore/fundamentals/servers/yarp/extensibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,25 @@ There are 2 main styles of extensibility for YARP, depending on the routing beha

YARP uses the concept of [Routes](xref:fundamentals/servers/yarp/config-files#routes), [Clusters](xref:fundamentals/servers/yarp/config-files#clusters) and Destinations. These can be supplied through [configuration files](xref:fundamentals/servers/yarp/config-files) or [directly through code](xref:fundamentals/servers/yarp/config-providers). Based on the routing rules, YARP picks a cluster and enumerates the possible destinations. It then uses the middleware pipeline to select the destination based on destination health, session affinity, load balancing etc.

![Middleware pipeline diagram](https://github.com/user-attachments/assets/ff17a04f-0c3c-46c7-8ec2-a1ed3dbc948c)
![Middleware pipeline diagram](~/fundamentals/servers/yarp/media/yarp-pipeline.png)

Most of the pre-built pipeline modules can be customized through code. You can also change the pipeline definition to replace modules with your own implementation(s) or add additional modules as needed.
Most of the pre-built pipeline can be customized through code:

For more information see [Middleware](xref:fundamentals/servers/yarp/middleware).
- [Configuration Providers](xref:fundamentals/servers/yarp/config-providers)
- [Destination Enumeration](xref:fundamentals/servers/yarp/destination-resolvers)
- [Session Affinity](xref:fundamentals/servers/yarp/session-affinity)
- [Load Balancing](xref:fundamentals/servers/yarp/load-balancing)
- [Health Checks](xref:fundamentals/servers/yarp/dests-health-checks)
- [Request Transforms](xref:fundamentals/servers/yarp/transform-extensibility)
- [HttpClient configuration](./http-client-config.md#code-configuration)

You can also change the pipeline definition to replace modules with your own implementation(s) or add additional modules as needed. For more information see [Middleware](xref:fundamentals/servers/yarp/middleware).

## Http Forwarder

If the YARP pipeline is too rigid for your needs, or the scale of routing rules and destinations is not suitable for loading into memory, then you can implement your own routing logic and use the HTTP Forwarder to direct requests to your chosen destination. The HttpForwarder component takes the HTTP context and forwards the request to the supplied destination.

![HTTP forwarder diagram](https://github.com/user-attachments/assets/1a060a7e-fa43-49a4-bfad-f95d7d35be63)
![HTTP forwarder diagram](~/fundamentals/servers/yarp/media/yarp-forwarder.png)

The transform component can still be used with the forwarder is needed.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion aspnetcore/migration/inc/samples/wrapped/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
options.RegisterKey<int>("test-value");
options.RegisterKey<SessionDemoModel>("SampleSessionItem");
})
.WrapAspNetCoreSession();
.AddWrappedAspNetCoreSession();
// </snippet_WrapAspNetCoreSession>

var app = builder.Build();
Expand Down
8 changes: 8 additions & 0 deletions aspnetcore/release-notes/aspnetcore-10/includes/blazor.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,11 @@ For more information, see the following resources:
The [`[Route]` attribute](xref:Microsoft.AspNetCore.Components.RouteAttribute) now supports route syntax highlighting to help visualize the structure of the route template:

![Route template pattern for the Order ID is highlighted in a method that maps endpoints](~/release-notes/aspnetcore-10/_static/route-template-highlighting.png)

<!-- PREVIEW 2
### `NavigateTo` no longer scrolls to the top for same-page navigations
Previously, <xref:Microsoft.AspNetCore.Components.NavigationManager.NavigateTo%2A?displayProperty=nameWithType> scrolled to the top of the page for same-page navigations. This behavior has been changed in .NET 10 so that the browser no longer scrolls to the top of the page when navigating to the same page. This means the viewport is no longer reset when making updates to the address for the current page, such as changing the query string or fragment.
-->
4 changes: 3 additions & 1 deletion aspnetcore/tutorials/first-mvc-app/adding-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ author: wadepickett
description: Part 4 of tutorial series on ASP.NET Core MVC.
monikerRange: '>= aspnetcore-3.1'
ms.author: wpickett
ms.date: 07/24/2024
ms.date: 2/20/2025
uid: tutorials/first-mvc-app/adding-model
---

Expand Down Expand Up @@ -61,6 +61,8 @@ Build the project as a check for compiler errors.

# [Visual Studio Code](#tab/visual-studio-code)

Open a command window in the project directory. The project directory is the directory that contains the `Program.cs` and `.csproj` files.

[!INCLUDE[](~/includes/add-EF-NuGet-SQLite-CLI-9.md)]

In Visual Studio Code, press <kbd>Ctrl</kbd>+<kbd>F5</kbd> to run the app without debugging.
Expand Down
Loading