Skip to content

Commit d692214

Browse files
Merge pull request #34225 from dotnet/main
Merge to Live
2 parents caed2df + 9b1941b commit d692214

File tree

33 files changed

+64652
-21314
lines changed

33 files changed

+64652
-21314
lines changed

.github/workflows/blazor-issue-processing.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ jobs:
2222
issue_number: context.issue.number,
2323
owner: context.repo.owner,
2424
repo: context.repo.repo,
25-
body: `### 🍂🎃🏮 *Autumn Skies and Pumpkin Pies!* 🥧☕🍂
26-
Stand by! A green dinosaur 🦖 will arrive shortly to assist.`
25+
body: `### 🏂🎁 ***Happy Holidays!*** ❄️⛄
26+
*Stand-by!* ... A green dinosaur 🦖 will be along shortly to assist.`
2727
})
2828
await github.rest.issues.addLabels({
2929
issue_number: context.issue.number,

aspnetcore/blazor/debug.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ The additional options in the following table only apply to **hosted Blazor WebA
386386
*The guidance in this section applies debugging Blazor WebAssembly apps in:*
387387

388388
* ***Google Chrome*** *running on Windows or macOS.*
389-
* ***Microsoft Edge** *running on Windows.*
389+
* ***Microsoft Edge*** *running on Windows.*
390390

391391
1. Run the app in a command shell with `dotnet watch` (or `dotnet run`).
392392
1. Launch a browser and navigate to the app's URL.

aspnetcore/blazor/webassembly-lazy-load-assemblies.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Blazor's <xref:Microsoft.AspNetCore.Components.Routing.Router> component designa
7171
Logic is implemented inside <xref:Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync> to determine the assemblies to load with <xref:Microsoft.AspNetCore.Components.WebAssembly.Services.LazyAssemblyLoader>. Options for how to structure the logic include:
7272

7373
* Conditional checks inside the <xref:Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync> method.
74-
* 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.
74+
* A lookup table that maps routes to assembly names, either injected into the component or implemented within the component's code.
7575

7676
In the following example:
7777

@@ -336,13 +336,9 @@ Create a standalone Blazor WebAssembly app to demonstrate lazy loading of a Razo
336336

337337
Add an ASP.NET Core class library project to the solution:
338338

339-
* 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.
339+
* 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.
340340
* 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`.
341341

342-
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.
343-
344-
[!INCLUDE[](~/includes/package-reference.md)]
345-
346342
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.
347343

348344
`HandGesture.cs`:

aspnetcore/fundamentals/owin.md

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -90,58 +90,6 @@ app.UseOwin(pipeline =>
9090
});
9191
```
9292

93-
<a name="hosting-on-owin"></a>
94-
95-
## Run ASP.NET Core on an OWIN-based server and use its WebSockets support
96-
97-
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.
98-
99-
```csharp
100-
public class Startup
101-
{
102-
public void Configure(IApplicationBuilder app)
103-
{
104-
app.Use(async (context, next) =>
105-
{
106-
if (context.WebSockets.IsWebSocketRequest)
107-
{
108-
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
109-
await EchoWebSocket(webSocket);
110-
}
111-
else
112-
{
113-
await next();
114-
}
115-
});
116-
117-
app.Run(context =>
118-
{
119-
return context.Response.WriteAsync("Hello World");
120-
});
121-
}
122-
123-
private async Task EchoWebSocket(WebSocket webSocket)
124-
{
125-
byte[] buffer = new byte[1024];
126-
WebSocketReceiveResult received = await webSocket.ReceiveAsync(
127-
new ArraySegment<byte>(buffer), CancellationToken.None);
128-
129-
while (!webSocket.CloseStatus.HasValue)
130-
{
131-
// Echo anything we receive
132-
await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, received.Count),
133-
received.MessageType, received.EndOfMessage, CancellationToken.None);
134-
135-
received = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer),
136-
CancellationToken.None);
137-
}
138-
139-
await webSocket.CloseAsync(webSocket.CloseStatus.Value,
140-
webSocket.CloseStatusDescription, CancellationToken.None);
141-
}
142-
}
143-
```
144-
14593
## OWIN environment
14694

14795
You can construct an OWIN environment using the `HttpContext`.

aspnetcore/performance/caching/hybrid.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ When an entry is removed, it is removed from both the primary and secondary cach
7373

7474
## Remove cache entries by tag
7575

76+
> [!IMPORTANT]
77+
> This feature is still under development. If you try to remove entries by tag, you will notice that it doesn't have any effect.
78+
7679
Tags can be used to group cache entries and invalidate them together.
7780

7881
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
145148

146149
By default `HybridCache` uses <xref:System.Runtime.Caching.MemoryCache> 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).
147150

151+
> [!NOTE]
152+
> 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.
153+
148154
## Optimize performance
149155

150156
To optimize performance, configure `HybridCache` to reuse objects and avoid `byte[]` allocations.

aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Index.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66

77
<div class="text-center">
88
<h1 class="display-4">Welcome</h1>
9-
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
9+
<p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
1010
</div>

aspnetcore/security/authentication/configure-oidc-web-authentication/sample/oidc-net8/RazorPageOidc/Pages/Shared/_Layout.cshtml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
1-
@using Microsoft.AspNetCore.Authorization
1+
@using Microsoft.AspNetCore.Authorization
22
@inject IAuthorizationService AuthorizationService
33
<!DOCTYPE html>
44
<html lang="en">
55
<head>
66
<meta charset="utf-8" />
77
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
88
<title>@ViewData["Title"] - RazorPageOidcClient</title>
9+
<script type="importmap"></script>
910
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
10-
<link rel="stylesheet" href="~/css/site.css" />
11+
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
12+
<link rel="stylesheet" href="~/RazorPageOidc.styles.css" asp-append-version="true" />
1113
</head>
1214
<body>
1315
<header>
1416
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
1517
<div class="container">
1618
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageOidcClient</a>
17-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
19+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
1820
aria-expanded="false" aria-label="Toggle navigation">
1921
<span class="navbar-toggler-icon"></span>
2022
</button>
21-
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
23+
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
2224
<ul class="navbar-nav flex-grow-1">
2325
<li class="nav-item">
2426
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
@@ -59,6 +61,6 @@
5961
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
6062
<script src="~/js/site.js" asp-append-version="true"></script>
6163

62-
@RenderSection("Scripts", required: false)
64+
@await RenderSectionAsync("Scripts", required: false)
6365
</body>
6466
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
2+
for details on configuring this project to bundle and minify static web assets. */
3+
4+
a.navbar-brand {
5+
white-space: normal;
6+
text-align: center;
7+
word-break: break-all;
8+
}
9+
10+
a {
11+
color: #0077cc;
12+
}
13+
14+
.btn-primary {
15+
color: #fff;
16+
background-color: #1b6ec2;
17+
border-color: #1861ac;
18+
}
19+
20+
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
21+
color: #fff;
22+
background-color: #1b6ec2;
23+
border-color: #1861ac;
24+
}
25+
26+
.border-top {
27+
border-top: 1px solid #e5e5e5;
28+
}
29+
.border-bottom {
30+
border-bottom: 1px solid #e5e5e5;
31+
}
32+
33+
.box-shadow {
34+
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
35+
}
36+
37+
button.accept-policy {
38+
font-size: 1rem;
39+
line-height: inherit;
40+
}
41+
42+
.footer {
43+
position: absolute;
44+
bottom: 0;
45+
width: 100%;
46+
white-space: nowrap;
47+
line-height: 60px;
48+
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
2-
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
2+
<script src="~/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>
Lines changed: 11 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,31 @@
1-
/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
2-
for details on configuring this project to bundle and minify static web assets. */
3-
4-
a.navbar-brand {
5-
white-space: normal;
6-
text-align: center;
7-
word-break: break-all;
8-
}
9-
10-
/* Provide sufficient contrast against white background */
11-
a {
12-
color: #0366d6;
13-
}
14-
15-
.btn-primary {
16-
color: #fff;
17-
background-color: #1b6ec2;
18-
border-color: #1861ac;
19-
}
20-
21-
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
22-
color: #fff;
23-
background-color: #1b6ec2;
24-
border-color: #1861ac;
25-
}
26-
27-
/* Sticky footer styles
28-
-------------------------------------------------- */
291
html {
302
font-size: 14px;
313
}
4+
325
@media (min-width: 768px) {
336
html {
347
font-size: 16px;
358
}
369
}
3710

38-
.border-top {
39-
border-top: 1px solid #e5e5e5;
40-
}
41-
.border-bottom {
42-
border-bottom: 1px solid #e5e5e5;
43-
}
44-
45-
.box-shadow {
46-
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
11+
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
12+
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
4713
}
4814

49-
button.accept-policy {
50-
font-size: 1rem;
51-
line-height: inherit;
52-
}
53-
54-
/* Sticky footer styles
55-
-------------------------------------------------- */
5615
html {
5716
position: relative;
5817
min-height: 100%;
5918
}
6019

6120
body {
62-
/* Margin bottom by footer height */
6321
margin-bottom: 60px;
6422
}
65-
.footer {
66-
position: absolute;
67-
bottom: 0;
68-
width: 100%;
69-
white-space: nowrap;
70-
line-height: 60px; /* Vertically center the text there */
23+
24+
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
25+
color: var(--bs-secondary-color);
26+
text-align: end;
7127
}
28+
29+
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
30+
text-align: start;
31+
}

0 commit comments

Comments
 (0)