From 2daf61f405f2a675039682ff687371b75d31b333 Mon Sep 17 00:00:00 2001
From: Tim Deschryver <28659384+timdeschryver@users.noreply.github.com>
Date: Thu, 17 Oct 2024 20:09:30 +0200
Subject: [PATCH 1/7] update Angular references to new website
---
aspnetcore/client-side/spa-services.md | 4 ++--
.../ClientApp/app/components/home/home.component.html | 2 +-
aspnetcore/client-side/spa/includes/angular3-7.md | 8 ++++----
aspnetcore/client-side/spa/includes/intro6-7.md | 4 ++--
aspnetcore/includes/spa-templates-recommend-vs.md | 2 +-
aspnetcore/release-notes/aspnetcore-8.0.md | 2 +-
aspnetcore/security/anti-request-forgery.md | 6 +++---
.../AuthScheme/ClientApp/src/app/home/home.component.html | 2 +-
aspnetcore/tutorials/choose-web-ui.md | 2 +-
.../tutorials/choose-web-ui/includes/choose-web-ui3-7.md | 2 +-
10 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/aspnetcore/client-side/spa-services.md b/aspnetcore/client-side/spa-services.md
index 68b4ad7646b0..cc853cbc2c6a 100644
--- a/aspnetcore/client-side/spa-services.md
+++ b/aspnetcore/client-side/spa-services.md
@@ -19,7 +19,7 @@ By [Fiyaz Hasan](https://fiyazhasan.me/)
:::moniker-end
-A Single Page Application (SPA) is a popular type of web application due to its inherent rich user experience. Integrating client-side SPA frameworks or libraries, such as [Angular](https://angular.io/) or [React](https://facebook.github.io/react/), with server-side frameworks such as ASP.NET Core can be difficult. JavaScript Services was developed to reduce friction in the integration process. It enables seamless operation between the different client and server technology stacks.
+A Single Page Application (SPA) is a popular type of web application due to its inherent rich user experience. Integrating client-side SPA frameworks or libraries, such as [Angular](https://angular.dev/) or [React](https://facebook.github.io/react/), with server-side frameworks such as ASP.NET Core can be difficult. JavaScript Services was developed to reduce friction in the integration process. It enables seamless operation between the different client and server technology stacks.
## What is JavaScript Services
@@ -305,4 +305,4 @@ dotnet publish -c Release
## Additional resources
-* [Angular Docs](https://angular.io/docs)
+* [Angular Docs](https://angular.dev/docs)
diff --git a/aspnetcore/client-side/spa-services/sample/SpaServicesSampleApp/ClientApp/app/components/home/home.component.html b/aspnetcore/client-side/spa-services/sample/SpaServicesSampleApp/ClientApp/app/components/home/home.component.html
index 1ad4553a44ba..d72f26df89c0 100644
--- a/aspnetcore/client-side/spa-services/sample/SpaServicesSampleApp/ClientApp/app/components/home/home.component.html
+++ b/aspnetcore/client-side/spa-services/sample/SpaServicesSampleApp/ClientApp/app/components/home/home.component.html
@@ -2,7 +2,7 @@
Hello, world!
Welcome to your new single-page application, built with:
diff --git a/aspnetcore/client-side/spa/includes/angular3-7.md b/aspnetcore/client-side/spa/includes/angular3-7.md
index 5d2de309e423..03d06ff3ee8e 100644
--- a/aspnetcore/client-side/spa/includes/angular3-7.md
+++ b/aspnetcore/client-side/spa/includes/angular3-7.md
@@ -39,7 +39,7 @@ The project template creates an ASP.NET Core app and an Angular app. The ASP.NET
## Add pages, images, styles, and modules
-The `ClientApp` directory contains a standard Angular CLI app. See the official [Angular documentation](https://angular.io) for more information.
+The `ClientApp` directory contains a standard Angular CLI app. See the official [Angular documentation](https://angular.dev) for more information.
There are slight differences between the Angular app created by this template and the one created by Angular CLI itself (via `ng new`); however, the app's capabilities are unchanged. The app created by the template contains a [Bootstrap](https://getbootstrap.com/)-based layout and a basic routing example.
@@ -51,7 +51,7 @@ In a command prompt, switch to the `ClientApp` subdirectory:
cd ClientApp
```
-If you have the `ng` tool installed globally, you can run any of its commands. For example, you can run `ng lint`, `ng test`, or any of the other [Angular CLI commands](https://angular.io/cli). There's no need to run `ng serve` though, because your ASP.NET Core app deals with serving both server-side and client-side parts of your app. Internally, it uses `ng serve` in development.
+If you have the `ng` tool installed globally, you can run any of its commands. For example, you can run `ng lint`, `ng test`, or any of the other [Angular CLI commands](https://angular.dev/cli). There's no need to run `ng serve` though, because your ASP.NET Core app deals with serving both server-side and client-side parts of your app. Internally, it uses `ng serve` in development.
If you don't have the `ng` tool installed, run `npm run ng` instead. For example, you can run `npm run ng lint` or `npm run ng test`.
@@ -144,7 +144,7 @@ The project template creates an ASP.NET Core app and an Angular app. The ASP.NET
## Add pages, images, styles, and modules
-The `ClientApp` directory contains a standard Angular CLI app. See the official [Angular documentation](https://angular.io) for more information.
+The `ClientApp` directory contains a standard Angular CLI app. See the official [Angular documentation](https://angular.dev) for more information.
There are slight differences between the Angular app created by this template and the one created by Angular CLI itself (via `ng new`); however, the app's capabilities are unchanged. The app created by the template contains a [Bootstrap](https://getbootstrap.com/)-based layout and a basic routing example.
@@ -156,7 +156,7 @@ In a command prompt, switch to the `ClientApp` subdirectory:
cd ClientApp
```
-If you have the `ng` tool installed globally, you can run any of its commands. For example, you can run `ng lint`, `ng test`, or any of the other [Angular CLI commands](https://angular.io/cli). There's no need to run `ng serve` though, because your ASP.NET Core app deals with serving both server-side and client-side parts of your app. Internally, it uses `ng serve` in development.
+If you have the `ng` tool installed globally, you can run any of its commands. For example, you can run `ng lint`, `ng test`, or any of the other [Angular CLI commands](https://angular.dev/cli). There's no need to run `ng serve` though, because your ASP.NET Core app deals with serving both server-side and client-side parts of your app. Internally, it uses `ng serve` in development.
If you don't have the `ng` tool installed, run `npm run ng` instead. For example, you can run `npm run ng lint` or `npm run ng test`.
diff --git a/aspnetcore/client-side/spa/includes/intro6-7.md b/aspnetcore/client-side/spa/includes/intro6-7.md
index 054830668fa3..015a7c30da56 100644
--- a/aspnetcore/client-side/spa/includes/intro6-7.md
+++ b/aspnetcore/client-side/spa/includes/intro6-7.md
@@ -3,7 +3,7 @@
## Architecture of Single Page Application templates
-The Single Page Application (SPA) templates for [Angular](https://angular.io/) and [React](https://reactjs.org/) offer the ability to develop Angular and React apps that are hosted inside a .NET backend server.
+The Single Page Application (SPA) templates for [Angular](https://angular.dev/) and [React](https://reactjs.org/) offer the ability to develop Angular and React apps that are hosted inside a .NET backend server.
At publish time, the files of the Angular and React app are copied to the `wwwroot` folder and are served via the [static files middleware](xref:fundamentals/static-files).
@@ -77,7 +77,7 @@ The template generated `ClientApp/package.json` file:
* The `prestart` script invokes `ClientApp/aspnetcore-https.js`, which is responsible for ensuring the development server HTTPS certificate is available to the SPA proxy server.
* The `start:windows` and `start:default`:
- * Launch the Angular development server via [`ng serve`](https://angular.io/cli/serve).
+ * Launch the Angular development server via [`ng serve`](https://angular.dev/cli/serve).
* Provide the port, the options to use HTTPS, and the path to the certificate and the associated key. The provide port number matches the port number specified in the `.csproj` file.
The template generated `ClientApp/angular.json` file contains:
diff --git a/aspnetcore/includes/spa-templates-recommend-vs.md b/aspnetcore/includes/spa-templates-recommend-vs.md
index 75616c8d67a1..bbc93c9a63d0 100644
--- a/aspnetcore/includes/spa-templates-recommend-vs.md
+++ b/aspnetcore/includes/spa-templates-recommend-vs.md
@@ -4,7 +4,7 @@ ms.author: tdykstra
ms.date: 10/10/2023
ms.topic: include
---
-Visual Studio provides project templates for creating single-page apps (SPAs) based on JavaScript frameworks such as [Angular](https://angular.io/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/) that have an ASP.NET Core backend. These templates:
+Visual Studio provides project templates for creating single-page apps (SPAs) based on JavaScript frameworks such as [Angular](https://angular.dev/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/) that have an ASP.NET Core backend. These templates:
* Create a Visual Studio solution with a frontend project and a backend project.
* Use the Visual Studio project type for JavaScript and TypeScript (*.esproj*) for the frontend.
diff --git a/aspnetcore/release-notes/aspnetcore-8.0.md b/aspnetcore/release-notes/aspnetcore-8.0.md
index c7dae069a2c0..95d7c276efe9 100644
--- a/aspnetcore/release-notes/aspnetcore-8.0.md
+++ b/aspnetcore/release-notes/aspnetcore-8.0.md
@@ -871,7 +871,7 @@ The following sections describe miscellaneous new features in ASP.NET Core 8.
### Visual Studio project templates for SPA apps with ASP.NET Core backend
-Visual Studio project templates are now the recommended way to create single-page apps (SPAs) that have an ASP.NET Core backend. Templates are provided that create apps based on the JavaScript frameworks [Angular](https://angular.io/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/). These templates:
+Visual Studio project templates are now the recommended way to create single-page apps (SPAs) that have an ASP.NET Core backend. Templates are provided that create apps based on the JavaScript frameworks [Angular](https://angular.dev/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/). These templates:
* Create a Visual Studio solution with a frontend project and a backend project.
* Use the Visual Studio project type for JavaScript and TypeScript (*.esproj*) for the frontend.
diff --git a/aspnetcore/security/anti-request-forgery.md b/aspnetcore/security/anti-request-forgery.md
index db7a8fbe3bab..618522885c49 100644
--- a/aspnetcore/security/anti-request-forgery.md
+++ b/aspnetcore/security/anti-request-forgery.md
@@ -189,7 +189,7 @@ For more information, see Hello, world!
Welcome to your new single-page application, built with:
diff --git a/aspnetcore/tutorials/choose-web-ui.md b/aspnetcore/tutorials/choose-web-ui.md
index b4f5b333e0d5..ae8daea0f19b 100644
--- a/aspnetcore/tutorials/choose-web-ui.md
+++ b/aspnetcore/tutorials/choose-web-ui.md
@@ -61,7 +61,7 @@ To get started with ASP.NET Core MVC, see
Date: Thu, 17 Oct 2024 20:12:55 +0200
Subject: [PATCH 2/7] update React references to new website
---
aspnetcore/client-side/spa-services.md | 2 +-
aspnetcore/includes/spa-templates-recommend-vs.md | 2 +-
aspnetcore/release-notes/aspnetcore-8.0.md | 2 +-
aspnetcore/tutorials/choose-web-ui.md | 2 +-
aspnetcore/tutorials/choose-web-ui/includes/choose-web-ui3-7.md | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/aspnetcore/client-side/spa-services.md b/aspnetcore/client-side/spa-services.md
index cc853cbc2c6a..b9cf19abf468 100644
--- a/aspnetcore/client-side/spa-services.md
+++ b/aspnetcore/client-side/spa-services.md
@@ -19,7 +19,7 @@ By [Fiyaz Hasan](https://fiyazhasan.me/)
:::moniker-end
-A Single Page Application (SPA) is a popular type of web application due to its inherent rich user experience. Integrating client-side SPA frameworks or libraries, such as [Angular](https://angular.dev/) or [React](https://facebook.github.io/react/), with server-side frameworks such as ASP.NET Core can be difficult. JavaScript Services was developed to reduce friction in the integration process. It enables seamless operation between the different client and server technology stacks.
+A Single Page Application (SPA) is a popular type of web application due to its inherent rich user experience. Integrating client-side SPA frameworks or libraries, such as [Angular](https://angular.dev/) or [React](https://react.dev/), with server-side frameworks such as ASP.NET Core can be difficult. JavaScript Services was developed to reduce friction in the integration process. It enables seamless operation between the different client and server technology stacks.
## What is JavaScript Services
diff --git a/aspnetcore/includes/spa-templates-recommend-vs.md b/aspnetcore/includes/spa-templates-recommend-vs.md
index bbc93c9a63d0..82309ec61c4b 100644
--- a/aspnetcore/includes/spa-templates-recommend-vs.md
+++ b/aspnetcore/includes/spa-templates-recommend-vs.md
@@ -4,7 +4,7 @@ ms.author: tdykstra
ms.date: 10/10/2023
ms.topic: include
---
-Visual Studio provides project templates for creating single-page apps (SPAs) based on JavaScript frameworks such as [Angular](https://angular.dev/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/) that have an ASP.NET Core backend. These templates:
+Visual Studio provides project templates for creating single-page apps (SPAs) based on JavaScript frameworks such as [Angular](https://angular.dev/), [React](https://react.dev/), and [Vue](https://vuejs.org/) that have an ASP.NET Core backend. These templates:
* Create a Visual Studio solution with a frontend project and a backend project.
* Use the Visual Studio project type for JavaScript and TypeScript (*.esproj*) for the frontend.
diff --git a/aspnetcore/release-notes/aspnetcore-8.0.md b/aspnetcore/release-notes/aspnetcore-8.0.md
index 95d7c276efe9..84c55ec7b0a0 100644
--- a/aspnetcore/release-notes/aspnetcore-8.0.md
+++ b/aspnetcore/release-notes/aspnetcore-8.0.md
@@ -871,7 +871,7 @@ The following sections describe miscellaneous new features in ASP.NET Core 8.
### Visual Studio project templates for SPA apps with ASP.NET Core backend
-Visual Studio project templates are now the recommended way to create single-page apps (SPAs) that have an ASP.NET Core backend. Templates are provided that create apps based on the JavaScript frameworks [Angular](https://angular.dev/), [React](https://facebook.github.io/react/), and [Vue](https://vuejs.org/). These templates:
+Visual Studio project templates are now the recommended way to create single-page apps (SPAs) that have an ASP.NET Core backend. Templates are provided that create apps based on the JavaScript frameworks [Angular](https://angular.dev/), [React](https://react.dev/), and [Vue](https://vuejs.org/). These templates:
* Create a Visual Studio solution with a frontend project and a backend project.
* Use the Visual Studio project type for JavaScript and TypeScript (*.esproj*) for the frontend.
diff --git a/aspnetcore/tutorials/choose-web-ui.md b/aspnetcore/tutorials/choose-web-ui.md
index ae8daea0f19b..5d14838c2d60 100644
--- a/aspnetcore/tutorials/choose-web-ui.md
+++ b/aspnetcore/tutorials/choose-web-ui.md
@@ -61,7 +61,7 @@ To get started with ASP.NET Core MVC, see
Date: Sat, 19 Oct 2024 22:52:39 -0600
Subject: [PATCH 3/7] status (#33881)
---
.../implementation/authenticated-encryption-details.md | 2 +-
.../data-protection/implementation/key-storage-format.md | 6 +++---
aspnetcore/security/key-vault-configuration.md | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/aspnetcore/security/data-protection/implementation/authenticated-encryption-details.md b/aspnetcore/security/data-protection/implementation/authenticated-encryption-details.md
index c13db0e6c234..c483e849ee6a 100644
--- a/aspnetcore/security/data-protection/implementation/authenticated-encryption-details.md
+++ b/aspnetcore/security/data-protection/implementation/authenticated-encryption-details.md
@@ -49,4 +49,4 @@ The next 128 bits, or 16 bytes is the key identifier (80 9C 81 0C 19 66 19 40 95
The remainder contains the payload and is specific to the format used.
> [!WARNING]
-> All payloads protected to a given key will begin with the same 20-byte (magic value, key id) header. Administrators can use this fact for diagnostic purposes to approximate when a payload was generated. For example, the payload above corresponds to key {0c819c80-6619-4019-9536-53f8aaffee57}. If after checking the key repository you find that this specific key's activation date was 2015-01-01 and its expiration date was 2015-03-01, then it's reasonable to assume that the payload (if not tampered with) was generated within that window, give or take a small fudge factor on either side.
+> All payloads protected to a given key will begin with the same 20-byte (magic value, key id) header. Administrators can use this fact for diagnostic purposes to approximate when a payload was generated. For example, the payload above corresponds to key {aaaaaaaa-0b0b-1c1c-2d2d-333333333333}. If after checking the key repository you find that this specific key's activation date was 2015-01-01 and its expiration date was 2015-03-01, then it's reasonable to assume that the payload (if not tampered with) was generated within that window, give or take a small fudge factor on either side.
diff --git a/aspnetcore/security/data-protection/implementation/key-storage-format.md b/aspnetcore/security/data-protection/implementation/key-storage-format.md
index a44e1050ab42..ebaeb8159ab5 100644
--- a/aspnetcore/security/data-protection/implementation/key-storage-format.md
+++ b/aspnetcore/security/data-protection/implementation/key-storage-format.md
@@ -21,7 +21,7 @@ Keys exist as top-level objects in the key repository. By convention keys have t
```xml
-
+2015-03-19T23:32:02.3949887Z2015-03-19T23:32:02.3839429Z2015-06-17T23:32:02.3839429Z
@@ -50,7 +50,7 @@ The \ element contains the following attributes and child elements:
* A \ element, which contains information on the authenticated encryption implementation contained within this key.
-In the above example, the key's id is {80732141-ec8f-4b80-af9c-c4d2d1ff8901}, it was created and activated on March 19, 2015, and it has a lifetime of 90 days. (Occasionally the activation date might be slightly before the creation date as in this example. This is due to a nit in how the APIs work and is harmless in practice.)
+In the above example, the key's id is {aaaaaaaa-0b0b-1c1c-2d2d-333333333333}, it was created and activated on March 19, 2015, and it has a lifetime of 90 days. (Occasionally the activation date might be slightly before the creation date as in this example. This is due to a nit in how the APIs work and is harmless in practice.)
## The \ element
@@ -74,7 +74,7 @@ For revocations of individual keys, the file contents will be as below.
2015-03-20T22:45:30.2616742Z
-
+ human-readable reason
```
diff --git a/aspnetcore/security/key-vault-configuration.md b/aspnetcore/security/key-vault-configuration.md
index b2f9d7620f50..5917f5921f2e 100644
--- a/aspnetcore/security/key-vault-configuration.md
+++ b/aspnetcore/security/key-vault-configuration.md
@@ -143,7 +143,7 @@ The X.509 certificate is managed by the OS. The app calls
Date: Sat, 19 Oct 2024 22:53:24 -0600
Subject: [PATCH 4/7] status (#33880)
---
aspnetcore/fundamentals/servers/httpsys.md | 4 ++--
.../fundamentals/servers/httpsys/includes/httpsys5-7.md | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/aspnetcore/fundamentals/servers/httpsys.md b/aspnetcore/fundamentals/servers/httpsys.md
index 83b6c55d8739..856e7ace8c09 100644
--- a/aspnetcore/fundamentals/servers/httpsys.md
+++ b/aspnetcore/fundamentals/servers/httpsys.md
@@ -239,7 +239,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
```xml
- 9412ee86-c21b-4eb8-bd89-f650fbf44931
+ 00001111-aaaa-2222-bbbb-3333cccc4444
```
@@ -252,7 +252,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
netsh http add sslcert
ipport=10.0.0.4:443
certhash=b66ee04419d4ee37464ab8785ff02449980eae10
- appid="{9412ee86-c21b-4eb8-bd89-f650fbf44931}"
+ appid="{00001111-aaaa-2222-bbbb-3333cccc4444}"
```
When a certificate is registered, the tool responds with `SSL Certificate successfully added`.
diff --git a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md
index 3081c7226d38..16c942550c0a 100644
--- a/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md
+++ b/aspnetcore/fundamentals/servers/httpsys/includes/httpsys5-7.md
@@ -206,7 +206,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
```xml
- 9412ee86-c21b-4eb8-bd89-f650fbf44931
+ 00001111-aaaa-2222-bbbb-3333cccc4444
```
@@ -219,7 +219,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
netsh http add sslcert
ipport=10.0.0.4:443
certhash=b66ee04419d4ee37464ab8785ff02449980eae10
- appid="{9412ee86-c21b-4eb8-bd89-f650fbf44931}"
+ appid="{00001111-aaaa-2222-bbbb-3333cccc4444}"
```
When a certificate is registered, the tool responds with `SSL Certificate successfully added`.
@@ -478,7 +478,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
```xml
- 9412ee86-c21b-4eb8-bd89-f650fbf44931
+ 00001111-aaaa-2222-bbbb-3333cccc4444
```
@@ -491,7 +491,7 @@ In Visual Studio, the default launch profile is for IIS Express. To run the proj
netsh http add sslcert
ipport=10.0.0.4:443
certhash=b66ee04419d4ee37464ab8785ff02449980eae10
- appid="{9412ee86-c21b-4eb8-bd89-f650fbf44931}"
+ appid="{00001111-aaaa-2222-bbbb-3333cccc4444}"
```
When a certificate is registered, the tool responds with `SSL Certificate successfully added`.
From ca008528a351b102d88325ac79cad45be676090f Mon Sep 17 00:00:00 2001
From: Luke Latham <1622880+guardrex@users.noreply.github.com>
Date: Mon, 21 Oct 2024 07:37:08 -0400
Subject: [PATCH 5/7] Sensitive terms with GUIDs in Blazor node (#33885)
---
aspnetcore/blazor/fundamentals/routing.md | 2 +-
aspnetcore/blazor/security/blazor-web-app-with-oidc.md | 10 +++++-----
.../blazor/security/includes/authorize-client-app.md | 2 +-
.../blazor/security/includes/troubleshoot-wasm.md | 4 ++--
.../hosted-with-azure-active-directory-b2c.md | 4 ++--
.../webassembly/hosted-with-microsoft-entra-id.md | 4 ++--
.../microsoft-entra-id-groups-and-roles-net-5-to-7.md | 7 +++----
.../webassembly/microsoft-entra-id-groups-and-roles.md | 7 +++----
.../blazor/tutorials/movie-database-app/part-4.md | 2 +-
9 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md
index aef6f2a2c5f4..2743d86a34c6 100644
--- a/aspnetcore/blazor/fundamentals/routing.md
+++ b/aspnetcore/blazor/fundamentals/routing.md
@@ -372,7 +372,7 @@ Constraint | Example | Example Matches | Invariant culture matching
`decimal` | `{price:decimal}` | `49.99`, `-1,000.01` | Yes
`double` | `{weight:double}` | `1.234`, `-1,001.01e8` | Yes
`float` | `{weight:float}` | `1.234`, `-1,001.01e8` | Yes
-`guid` | `{id:guid}` | `CD2C1638-1638-72D5-1638-DEADBEEF1638`, `{CD2C1638-1638-72D5-1638-DEADBEEF1638}` | No
+`guid` | `{id:guid}` | `00001111-aaaa-2222-bbbb-3333cccc4444`, `{00001111-aaaa-2222-bbbb-3333cccc4444}` | No
`int` | `{id:int}` | `123456789`, `-123456789` | Yes
`long` | `{ticks:long}` | `123456789`, `-123456789` | Yes
`nonfile` | `{parameter:nonfile}` | Not `BlazorSample.styles.css`, not `favicon.ico` | Yes
diff --git a/aspnetcore/blazor/security/blazor-web-app-with-oidc.md b/aspnetcore/blazor/security/blazor-web-app-with-oidc.md
index 0c56f1b85a9a..640ca1a3f622 100644
--- a/aspnetcore/blazor/security/blazor-web-app-with-oidc.md
+++ b/aspnetcore/blazor/security/blazor-web-app-with-oidc.md
@@ -116,7 +116,7 @@ The following If you don't have the authority to grant admin consent to the tenant in the last step of **API permissions** configuration because consent to use the app is delegated to users, then you must take the following additional steps:
>
> * The app must use a [trusted publisher domain](/entra/identity-platform/howto-configure-publisher-domain).
-> * In the **`Server`** app's configuration in the Azure portal, select **Expose an API**. Under **Authorized client applications**, select the button to **Add a client application**. Add the **`Client`** app's Application (client) ID (for example, `4369008b-21fa-427c-abaa-9b53bf58e538`).
+> * In the **`Server`** app's configuration in the Azure portal, select **Expose an API**. Under **Authorized client applications**, select the button to **Add a client application**. Add the **`Client`** app's Application (client) ID (for example, `11112222-bbbb-3333-cccc-4444dddd5555`).
diff --git a/aspnetcore/blazor/security/includes/troubleshoot-wasm.md b/aspnetcore/blazor/security/includes/troubleshoot-wasm.md
index 165e14077ecb..9b25c972ca9d 100644
--- a/aspnetcore/blazor/security/includes/troubleshoot-wasm.md
+++ b/aspnetcore/blazor/security/includes/troubleshoot-wasm.md
@@ -210,10 +210,10 @@ Example JWT decoded by the tool for an app that authenticates against Azure AAD
"exp": 1610059429,
"nbf": 1610055829,
"ver": "1.0",
- "iss": "https://mysiteb2c.b2clogin.com/5cc15ea8-a296-4aa3-97e4-226dcc9ad298/v2.0/",
+ "iss": "https://mysiteb2c.b2clogin.com/11112222-bbbb-3333-cccc-4444dddd5555/v2.0/",
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
- "nonce": "b2641f54-8dc4-42ca-97ea-7f12ff4af871",
+ "nonce": "bbbb0000-cccc-1111-dddd-2222eeee3333",
"iat": 1610055829,
"auth_time": 1610055822,
"idp": "idp.com",
diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md b/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md
index b727b34d3942..e3ca1104ce14 100644
--- a/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md
+++ b/aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md
@@ -137,7 +137,7 @@ The output location specified with the `-o|--output` option creates a project fo
*The guidance in this section covers optionally populating `User.Identity.Name` with the value from the `name` claim.*
-The **:::no-loc text="Server":::** app API populates `User.Identity.Name` with the value from the `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` claim type (for example, `2d64b3da-d9d5-42c6-9352-53d8df33d770@contoso.onmicrosoft.com`).
+The **:::no-loc text="Server":::** app API populates `User.Identity.Name` with the value from the `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` claim type (for example, `aaaabbbb-0000-cccc-1111-dddd2222eeee@contoso.onmicrosoft.com`).
To configure the app to receive the value from the `name` claim type:
@@ -358,7 +358,7 @@ Example default access token scope:
```csharp
options.ProviderOptions.DefaultAccessTokenScopes.Add(
- "https://contoso.onmicrosoft.com/41451fa7-82d9-4673-8fa5-69eff5a761fd/API.Access");
+ "https://contoso.onmicrosoft.com/00001111-aaaa-2222-bbbb-3333cccc4444/API.Access");
```
For more information, see the following sections of the *Additional scenarios* article:
diff --git a/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md b/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md
index 2f865310c285..efa05e4b3214 100644
--- a/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md
+++ b/aspnetcore/blazor/security/webassembly/hosted-with-microsoft-entra-id.md
@@ -141,7 +141,7 @@ The output location specified with the `-o|--output` option creates a project fo
*The guidance in this section covers optionally populating `User.Identity.Name` with the value from the `name` claim.*
-The **:::no-loc text="Server":::** app API populates `User.Identity.Name` with the value from the `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` claim type (for example, `2d64b3da-d9d5-42c6-9352-53d8df33d770@contoso.onmicrosoft.com`).
+The **:::no-loc text="Server":::** app API populates `User.Identity.Name` with the value from the `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` claim type (for example, `bbbb0000-cccc-1111-dddd-2222eeee3333@contoso.onmicrosoft.com`).
To configure the app to receive the value from the `name` claim type:
@@ -464,7 +464,7 @@ Instead of the App ID URI matching the format `api://{SERVER API APP CLIENT ID O
```csharp
options.ProviderOptions.DefaultAccessTokenScopes
- .Add("https://contoso.onmicrosoft.com/41451fa7-82d9-4673-8fa5-69eff5a761fd/API.Access");
+ .Add("https://contoso.onmicrosoft.com/00001111-aaaa-2222-bbbb-3333cccc4444/API.Access");
```
In the preceding scope, the App ID URI/audience is the `https://contoso.onmicrosoft.com/00001111-aaaa-2222-bbbb-3333cccc4444` portion of the value, which doesn't include a trailing slash (`/`) and doesn't include the scope name (`API.Access`).
diff --git a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md
index 19582aa4c709..8e042aebfabd 100644
--- a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md
+++ b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles-net-5-to-7.md
@@ -542,7 +542,7 @@ When working with the default directory, follow the guidance in [Add app roles t
],
"description": "Administrators manage developers.",
"displayName": "Admin",
- "id": "584e483a-7101-404b-9bb1-83bf9463e335",
+ "id": "{ADMIN GUID}",
"isEnabled": true,
"lang": null,
"origin": "Application",
@@ -554,7 +554,7 @@ When working with the default directory, follow the guidance in [Add app roles t
],
"description": "Developers write code.",
"displayName": "Developer",
- "id": "82770d35-2a93-4182-b3f5-3d7bfe9dfe46",
+ "id": "{DEVELOPER GUID}",
"isEnabled": true,
"lang": null,
"origin": "Application",
@@ -563,8 +563,7 @@ When working with the default directory, follow the guidance in [Add app roles t
],
```
-> [!NOTE]
-> You can generate GUIDs with an [online GUID generator program (Google search result for "guid generator")](https://www.google.com/search?q=guid+generator).
+For the `{ADMIN GUID}` and `{DEVELOPER GUID}` placeholders in the preceding example, you can generate GUIDs with an [online GUID generator (Google search result for "guid generator")](https://www.google.com/search?q=guid+generator).
To assign a role to a user (or group if you have a Premium tier Azure account):
diff --git a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md
index a3692d2c9047..42140e821e42 100644
--- a/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md
+++ b/aspnetcore/blazor/security/webassembly/microsoft-entra-id-groups-and-roles.md
@@ -282,7 +282,7 @@ Take either of the following approaches add app roles in ME-ID:
],
"description": "Administrators manage developers.",
"displayName": "Admin",
- "id": "584e483a-7101-404b-9bb1-83bf9463e335",
+ "id": "{ADMIN GUID}",
"isEnabled": true,
"lang": null,
"origin": "Application",
@@ -294,7 +294,7 @@ Take either of the following approaches add app roles in ME-ID:
],
"description": "Developers write code.",
"displayName": "Developer",
- "id": "82770d35-2a93-4182-b3f5-3d7bfe9dfe46",
+ "id": "{DEVELOPER GUID}",
"isEnabled": true,
"lang": null,
"origin": "Application",
@@ -303,8 +303,7 @@ Take either of the following approaches add app roles in ME-ID:
],
```
- > [!NOTE]
- > You can generate GUIDs with an [online GUID generator program (Google search result for "guid generator")](https://www.google.com/search?q=guid+generator).
+ For the `{ADMIN GUID}` and `{DEVELOPER GUID}` placeholders in the preceding example, you can generate GUIDs with an [online GUID generator (Google search result for "guid generator")](https://www.google.com/search?q=guid+generator).
To assign a role to a user (or group if you have a Premium tier Azure account):
diff --git a/aspnetcore/blazor/tutorials/movie-database-app/part-4.md b/aspnetcore/blazor/tutorials/movie-database-app/part-4.md
index b44113a9a302..908f783c1bf5 100644
--- a/aspnetcore/blazor/tutorials/movie-database-app/part-4.md
+++ b/aspnetcore/blazor/tutorials/movie-database-app/part-4.md
@@ -95,7 +95,7 @@ For local development, configuration obtains the database connection string from
The following is an example connection string:
-> :::no-loc text="Server=(localdb)\\mssqllocaldb;Database=BlazorWebAppMoviesContext-c347f669-bddf-56a3-a32e-7fe010306593;Trusted_Connection=True;MultipleActiveResultSets=true":::
+> :::no-loc text="Server=(localdb)\\mssqllocaldb;Database=BlazorWebAppMoviesContext-00001111-aaaa-2222-bbbb-3333cccc4444;Trusted_Connection=True;MultipleActiveResultSets=true":::
When the app is deployed to a test/staging or production server, securely store the connection string outside of the project's configuration files.
From 0fe9479e7b3f6a8ba9dafab87368a02f4430a865 Mon Sep 17 00:00:00 2001
From: Luke Latham <1622880+guardrex@users.noreply.github.com>
Date: Mon, 21 Oct 2024 08:33:12 -0400
Subject: [PATCH 6/7] Minor updates to the Debug article (#33887)
---
aspnetcore/blazor/debug.md | 70 +++++---------------------------------
1 file changed, 9 insertions(+), 61 deletions(-)
diff --git a/aspnetcore/blazor/debug.md b/aspnetcore/blazor/debug.md
index 61f3f40a27be..d013eafab35e 100644
--- a/aspnetcore/blazor/debug.md
+++ b/aspnetcore/blazor/debug.md
@@ -164,13 +164,13 @@ Blazor Server: [`Microsoft.AspNetCore.Components.WebAssembly.Server`](https://ww
:::moniker-end
-Standalone Blazor WebAssembly: [`Microsoft.AspNetCore.Components.WebAssembly.DevServer`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.DevServer): Development server for use when building Blazor apps. Calls internally to add middleware for debugging Blazor WebAssembly apps inside Chromium developer tools.
+Standalone Blazor WebAssembly: [`Microsoft.AspNetCore.Components.WebAssembly.DevServer`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.DevServer): Development server for use when building Blazor apps. Calls internally to add middleware for debugging Blazor WebAssembly apps inside Chromium developer tools.
:::moniker range="< aspnetcore-8.0"
Hosted Blazor WebAssembly:
-* **:::no-loc text="Client":::** project: [`Microsoft.AspNetCore.Components.WebAssembly.DevServer`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.DevServer): Development server for use when building Blazor apps. Calls internally to add middleware for debugging Blazor WebAssembly apps inside Chromium developer tools.
+* **:::no-loc text="Client":::** project: [`Microsoft.AspNetCore.Components.WebAssembly.DevServer`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.DevServer): Development server for use when building Blazor apps. Calls internally to add middleware for debugging Blazor WebAssembly apps inside Chromium developer tools.
* **:::no-loc text="Server":::** project: [`Microsoft.AspNetCore.Components.WebAssembly.Server`](https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebAssembly.Server): References an internal package ([`Microsoft.NETCore.BrowserDebugHost.Transport`](https://github.com/dotnet/runtime/blob/main/src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj)) for assemblies that share the browser debug host.
:::moniker-end
@@ -187,7 +187,7 @@ The example in this section assumes that you've created a Blazor Web App with an
1. Open the app.
1. Set a breakpoint on the `currentCount++;` line in the `Counter` component (`Pages/Counter.razor`) of the client project (`.Client`).
-1. Press F5 to run the app in the debugger.
+1. With the server project selected in **Solution Explorer**, press F5 to run the app in the debugger.
1. In the browser, navigate to `Counter` page at `/counter`. Wait a few seconds for the debug proxy to load and run. Select the **Click me** button to hit the breakpoint.
1. In Visual Studio, inspect the value of the `currentCount` field in the **Locals** window.
1. Press F5 to continue execution.
@@ -195,35 +195,9 @@ The example in this section assumes that you've created a Blazor Web App with an
Breakpoints can also be hit in the server project in statically-rendered and interactively-rendered server-side components.
1. Stop the debugger.
-1. Add the following component to the server app. The component applies the Interactive Server render mode (`InteractiveServer`).
-
- `Components/Pages/Counter2.razor`:
-
- ```razor
- @page "/counter-2"
- @rendermode InteractiveServer
-
- Counter 2
-
-
Counter 2
-
-
Current count: @currentCount
-
-
-
- @code {
- private int currentCount = 0;
-
- private void IncrementCount()
- {
- currentCount++;
- }
- }
- ```
-
-1. Set a breakpoint on the `currentCount++;` line in the `Counter2` component.
+1. In the server app, open the statically-rendered `Weather` component (`Components/Pages/Weather.razor`) and set a breakpoint anywhere in the `OnInitializedAsync` method.
1. Press F5 to run the app in the debugger.
-1. In the browser, navigate to `Counter2` page at `/counter-2`. Wait a few seconds for the debug proxy to load and run. Select the **Click me** button to hit the breakpoint.
+1. In the browser, navigate to the `Weather` page at `/weather`. Wait a few seconds for the debug proxy to load and run. Application execution stops at the breakpoint.
1. Press F5 to continue execution.
Breakpoints are **not** hit during app startup before the debug proxy is running. This includes breakpoints in the `Program` file and breakpoints in the [`OnInitialized{Async}` lifecycle methods](xref:blazor/components/lifecycle#component-initialization-oninitializedasync) of components that are loaded by the first page requested from the app.
@@ -241,35 +215,9 @@ The example in this section assumes that you've created a Blazor Web App with an
Breakpoints can also be hit in the server project.
1. Stop debugging by selecting the **Stop** button or press Shift+F5 on the keyboard.
-1. Add the following component to the server app. The component adopts the Interactive Server render mode (`InteractiveServer`).
-
- `Components/Pages/Counter2.razor`:
-
- ```razor
- @page "/counter-2"
- @rendermode InteractiveServer
-
- Counter 2
-
-
Counter 2
-
-
Current count: @currentCount
-
-
-
- @code {
- private int currentCount = 0;
-
- private void IncrementCount()
- {
- currentCount++;
- }
- }
- ```
-
-1. Set a breakpoint on the `currentCount++;` line in the `Counter2` component.
+1. In the server app, open the statically-rendered `Weather` component (`Components/Pages/Weather.razor`) and set a breakpoint anywhere in the `OnInitializedAsync` method.
1. Select the **Start Debugging** button in the UI or press F5 (**Start Debugging**) to run the app in the debugger.
-1. In the browser, navigate to the `Counter2` page at `/counter-2`. Wait a few seconds for the debug proxy to load and run. Select the **Click me** button to hit the breakpoint.
+1. In the browser, navigate to the `Weather` page at `/weather`. Wait a few seconds for the debug proxy to load and run. Application execution stops at the breakpoint.
1. Select the **Continue** button in the UI or press F5 (**Continue**) to continue execution.
Breakpoints are **not** hit during app startup before the debug proxy is running. This includes breakpoints in the `Program` file and breakpoints in the [`OnInitialized{Async}` lifecycle methods](xref:blazor/components/lifecycle#component-initialization-oninitializedasync) of components that are loaded by the first page requested from the app.
@@ -437,8 +385,8 @@ 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.*
+* ***Google Chrome*** *running on Windows or macOS.*
+* ***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.
From 5a02d01e3749ea655c1b41c68389f2d7f63fec1f Mon Sep 17 00:00:00 2001
From: Luke Latham <1622880+guardrex@users.noreply.github.com>
Date: Mon, 21 Oct 2024 08:47:36 -0400
Subject: [PATCH 7/7] Cross-link movie tutorial in EF Core article (#33889)
---
aspnetcore/blazor/blazor-ef-core.md | 8 ++++++++
aspnetcore/toc.yml | 20 +++++++++++++++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/aspnetcore/blazor/blazor-ef-core.md b/aspnetcore/blazor/blazor-ef-core.md
index 931629e0f891..ff94b53f0775 100644
--- a/aspnetcore/blazor/blazor-ef-core.md
+++ b/aspnetcore/blazor/blazor-ef-core.md
@@ -103,6 +103,14 @@ The grid, add, and view components use the "context-per-operation" pattern, wher
> [!NOTE]
> Some of the code examples in this topic require namespaces and services that aren't shown. To inspect the fully working code, including the required [`@using`](xref:mvc/views/razor#using) and [`@inject`](xref:mvc/views/razor#inject) directives for Razor examples, see the [sample app](#sample-app).
+:::moniker range=">= aspnetcore-8.0"
+
+## Build a Blazor movie database app tutorial
+
+For a tutorial experience building an app that uses EF Core to work with a database, see . The tutorial shows you how to create a Blazor Web App that can display and manage movies in a movie database.
+
+:::moniker-end
+
## Database access
EF Core relies on a as the means to [configure database access](/ef/core/miscellaneous/configuring-dbcontext) and act as a [*unit of work*](https://martinfowler.com/eaaCatalog/unitOfWork.html). EF Core provides the extension for ASP.NET Core apps that registers the context as a *scoped* service. In server-side Blazor apps, scoped service registrations can be problematic because the instance is shared across components within the user's circuit. isn't thread safe and isn't designed for concurrent use. The existing lifetimes are inappropriate for these reasons:
diff --git a/aspnetcore/toc.yml b/aspnetcore/toc.yml
index 36f7fe097d5f..85ed4eb7d7f7 100644
--- a/aspnetcore/toc.yml
+++ b/aspnetcore/toc.yml
@@ -415,7 +415,25 @@ items:
- name: Build a Blazor todo list app
uid: blazor/tutorials/build-a-blazor-app
- name: Build a Blazor movie database app
- uid: blazor/tutorials/movie-database-app/index
+ items:
+ - name: Overview
+ uid: blazor/tutorials/movie-database-app/index
+ - name: Create a Blazor Web App
+ uid: blazor/tutorials/movie-database-app/part-1
+ - name: Add and scaffold a model
+ uid: blazor/tutorials/movie-database-app/part-2
+ - name: Learn about Razor components
+ uid: blazor/tutorials/movie-database-app/part-3
+ - name: Work with a database
+ uid: blazor/tutorials/movie-database-app/part-4
+ - name: Add validation
+ uid: blazor/tutorials/movie-database-app/part-5
+ - name: Add search
+ uid: blazor/tutorials/movie-database-app/part-6
+ - name: Add a new field
+ uid: blazor/tutorials/movie-database-app/part-7
+ - name: Add interactivity
+ uid: blazor/tutorials/movie-database-app/part-8
- name: SignalR with Blazor
uid: blazor/tutorials/signalr-blazor
- name: Learn modules