Skip to content

Commit 96c5b8e

Browse files
authored
pull base content,head:wwlpublishsync,into:482071b49f8d0564e800a19f91114631dc3d6d9978f3da4916057ff8920ddff2-live
2 parents a5c146f + 51dd4c8 commit 96c5b8e

File tree

220 files changed

+781
-2738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

220 files changed

+781
-2738
lines changed

.openpublishing.redirection.json

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36228,6 +36228,126 @@
3622836228
"redirect_url": "/training/",
3622936229
"redirect_document_id": false
3623036230
},
36231+
{
36232+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/index.yml",
36233+
"redirect_url": "/training/",
36234+
"redirect_document_id": false
36235+
},
36236+
{
36237+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/1-introduction.yml",
36238+
"redirect_url": "/training/",
36239+
"redirect_document_id": false
36240+
},
36241+
{
36242+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/2-what-is-aks-edge-essentials.yml",
36243+
"redirect_url": "/training/",
36244+
"redirect_document_id": false
36245+
},
36246+
{
36247+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/3-how-aks-edge-essentials-works.yml",
36248+
"redirect_url": "/training/",
36249+
"redirect_document_id": false
36250+
},
36251+
{
36252+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/4-when-to-use-aks-edge-essentials.yml",
36253+
"redirect_url": "/training/",
36254+
"redirect_document_id": false
36255+
},
36256+
{
36257+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/5-knowledge-check.yml",
36258+
"redirect_url": "/training/",
36259+
"redirect_document_id": false
36260+
},
36261+
{
36262+
"source_path": "learn-pr/iot/introduction-to-aks-edge-essentials/6-summary.yml",
36263+
"redirect_url": "/training/",
36264+
"redirect_document_id": false
36265+
},
36266+
{
36267+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/index.yml",
36268+
"redirect_url": "/training/",
36269+
"redirect_document_id": false
36270+
},
36271+
{
36272+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/1-introduction.yml",
36273+
"redirect_url": "/training/",
36274+
"redirect_document_id": false
36275+
},
36276+
{
36277+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/2-prepare-machine-for-aks-edge-essentials.yml",
36278+
"redirect_url": "/training/",
36279+
"redirect_document_id": false
36280+
},
36281+
{
36282+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/3-exercise-deploy-aks-edge-essentials.yml",
36283+
"redirect_url": "/training/",
36284+
"redirect_document_id": false
36285+
},
36286+
{
36287+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/4-deploy-application-aks-edge-essentials.yml",
36288+
"redirect_url": "/training/",
36289+
"redirect_document_id": false
36290+
},
36291+
{
36292+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/5-exercise-deploy-application-aks-edge-essentials.yml",
36293+
"redirect_url": "/training/",
36294+
"redirect_document_id": false
36295+
},
36296+
{
36297+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/6-knowledge-check.yml",
36298+
"redirect_url": "/training/",
36299+
"redirect_document_id": false
36300+
},
36301+
{
36302+
"source_path": "learn-pr/iot/create-first-aks-edge-essentials/7-summary.yml",
36303+
"redirect_url": "/training/",
36304+
"redirect_document_id": false
36305+
},
36306+
{
36307+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/index.yml",
36308+
"redirect_url": "/training/",
36309+
"redirect_document_id": false
36310+
},
36311+
{
36312+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/1-introduction.yml",
36313+
"redirect_url": "/training/",
36314+
"redirect_document_id": false
36315+
},
36316+
{
36317+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/2-arc-enable-aks-edge-essentials.yml",
36318+
"redirect_url": "/training/",
36319+
"redirect_document_id": false
36320+
},
36321+
{
36322+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/3-exercise-arc-enable-aks-edge-essentials.yml",
36323+
"redirect_url": "/training/",
36324+
"redirect_document_id": false
36325+
},
36326+
{
36327+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/4-remote-application-aks-edge-essentials.yml",
36328+
"redirect_url": "/training/",
36329+
"redirect_document_id": false
36330+
},
36331+
{
36332+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/5-exercise-remote-application-aks-edge-essentials.yml",
36333+
"redirect_url": "/training/",
36334+
"redirect_document_id": false
36335+
},
36336+
{
36337+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/6-knowledge-check.yml",
36338+
"redirect_url": "/training/",
36339+
"redirect_document_id": false
36340+
},
36341+
{
36342+
"source_path": "learn-pr/iot/connect-aks-edge-essentials-azure-arc/7-summary.yml",
36343+
"redirect_url": "/training/",
36344+
"redirect_document_id": false
36345+
},
36346+
{
36347+
"source_path": "learn-pr/paths/get-started-aks-edge-essentials/index.yml",
36348+
"redirect_url": "/training/",
36349+
"redirect_document_id": false
36350+
},
3623136351
{
3623236352
"source_path": "learn-pr/azure/optimize-archive-costs-blob-storage/1-introduction.yml",
3623336353
"redirect_url": "https://learn.microsoft.com/azure/storage/blobs/access-tiers-overview",
@@ -40773,6 +40893,11 @@
4077340893
"redirect_url": "https://learn.microsoft.com/training/browse/",
4077440894
"redirect_document_id": false
4077540895
},
40896+
{
40897+
"source_path": "learn-pr/paths/explore-azure-devops-with-github/index.yml",
40898+
"redirect_url": "https://learn.microsoft.com/training/paths/az-400-implement-ci-azure-pipelines-github-actions/",
40899+
"redirect_document_id": false
40900+
},
4077640901
{
4077740902
"source_path": "learn-pr/azure/manage-device-identity-ad-join/1-introduction.yml",
4077840903
"redirect_url": "https://learn.microsoft.com/en-us/entra/identity/devices/overview",
@@ -40802,6 +40927,16 @@
4080240927
"source_path": "learn-pr/azure/manage-device-identity-ad-join/index.yml",
4080340928
"redirect_url": "https://learn.microsoft.com/en-us/entra/identity/devices/overview",
4080440929
"redirect_document_id": false
40930+
},
40931+
{
40932+
"source_path": "learn-pr/wwl-azure/guided-project-create-ai-travel-agent/4-exercise-route-user-intent.md",
40933+
"redirect_url": "/training/modules/guided-project-create-ai-travel-agent/",
40934+
"redirect_document_id": false
40935+
},
40936+
{
40937+
"source_path": "learn-pr/wwl-azure/guided-project-create-ai-travel-agent/5-exercise-provide-context-cues.md",
40938+
"redirect_url": "/training/modules/guided-project-create-ai-travel-agent/",
40939+
"redirect_document_id": false
4080540940
}
4080640941
]
4080740942
}

learn-pr/achievements.yml

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4607,6 +4607,26 @@ achievements:
46074607
title: Crack the code and reveal a secret with Python and Visual Studio Code
46084608
summary: You're handed a secret message that needs a code cracker to find the truth. Learn how to solve the code mystery to reveal a location and date to find a hidden treasure. Get a glimpse into the popular Python programming language with this introductory lesson that requires no coding experience.
46094609
iconUrl: /training/achievements/python-partnership/secret-message-revised.svg
4610+
- uid: learn.introduction-to-aks-edge-essentials.badge
4611+
type: badge
4612+
title: Introduction to Azure Kubernetes Service (AKS) Edge Essentials
4613+
summary: Introduction to Azure Kubernetes Service (AKS) Edge Essentials
4614+
iconUrl: /training/achievements/iot/introduction-to-aks-edge-essentials.svg
4615+
- uid: learn.create-first-aks-edge-essentials.badge
4616+
type: badge
4617+
title: Create your first Azure Kubernetes Service (AKS) Edge Essentials single machine cluster
4618+
summary: Create your first Azure Kubernetes Service (AKS) Edge Essentials single machine cluster
4619+
iconUrl: /training/achievements/iot/create-first-aks-edge-essentials.svg
4620+
- uid: learn.connect-aks-edge-essentials-azure-arc.badge
4621+
type: badge
4622+
title: Connect your Azure Kubernetes Service (AKS) Edge Essentials cluster to Azure Arc
4623+
summary: Connect your Azure Kubernetes Service (AKS) Edge Essentials cluster to Azure Arc
4624+
iconUrl: /training/achievements/iot/connect-aks-edge-essentials-azure-arc.svg
4625+
- uid: learn.get-started-aks-edge-essentials.trophy
4626+
type: trophy
4627+
title: Get started with Azure Kubernetes Service (AKS) Edge Essentials
4628+
summary: Get started with Azure Kubernetes Service (AKS) Edge Essentials
4629+
iconUrl: /training/achievements/iot/get-started-aks-edge-essentials.svg
46104630
- uid: learn.python-partnership.trophy
46114631
type: trophy
46124632
title: Use Python basics to solve mysteries and find answers
@@ -4940,9 +4960,13 @@ achievements:
49404960
title: Create a new Node.js project and work with dependencies
49414961
summary: Use dependencies from the npm registry to develop Node.js applications faster. Learn how to manage dependencies for your project. This module uses JavaScript CommonJS in the Node.js runtime.
49424962
iconUrl: /training/achievements/create-nodejs-project-dependencies.svg
4963+
- uid: learn.azdo.explore-azure-devops-with-github.trophy
4964+
type: trophy
4965+
title: Explore Azure DevOps with GitHub to streamline your development process
4966+
summary: Learn how to use GitHub Actions, Azure DevOps, and Azure Pipelines to build, test, and deploy applications.
4967+
iconUrl: /training/achievements/explore-azure-devops-with-github.svg
49434968
- uid: learn.azure.manage-device-identity-ad-join.badge
49444969
type: badge
49454970
title: Manage device identity with Microsoft Entra join and Enterprise State Roaming
49464971
summary: Evaluate options to manage device identities in Microsoft Entra ID. Allow users to join devices in Microsoft Entra ID. Require devices to be marked as compliant. Enable Enterprise State Roaming.
49474972
iconUrl: /training/achievements/manage-device-identity-ad-join.svg
4948-

learn-pr/aspnetcore/blazor-improve-how-forms-work/1-introduction.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: introduction
66
title: Introduction
77
description: Introduction
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl

learn-pr/aspnetcore/blazor-improve-how-forms-work/2-attach-csharp-code-dom-events-blazor-event-handlers.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: learning-content
66
title: "Attach C# code to DOM events with Blazor event handlers"
77
description: "Create handlers to process DOM events using C#"
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl
@@ -20,7 +20,7 @@ quiz:
2020
choices:
2121
- content: "C# events"
2222
isCorrect: false
23-
explanation: "C# events do not properly transfer between components"
23+
explanation: "C# events don't properly transfer between components"
2424
- content: "EventCallback"
2525
isCorrect: true
2626
explanation: "EventCallbacks look like parameters on a component and can be specified on a Blazor page or another component"
@@ -34,7 +34,7 @@ quiz:
3434
explanation: "preventDefault prevents the default action in the DOM element from executing"
3535
- content: "return false"
3636
isCorrect: false
37-
explanation: "return false was a technique to stop an event in other JavaScript frameworks, but does not prevent the default action"
37+
explanation: "return false was a technique to stop an event in other JavaScript frameworks, but doesn't prevent the default action"
3838
- content: "throw new Exception()"
3939
isCorrect: false
4040
explanation: "Throwing an exception might stop the default action from executing, but it also raises an error that you might not want your application users to interact with"

learn-pr/aspnetcore/blazor-improve-how-forms-work/3-exercise-create-blazor-event-handler-onclick-events.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: Exercise
66
title: "Exercise - Create a Blazor event handler for onclick events"
77
description: "Handle the onclick event for an HTML form control using C#"
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl

learn-pr/aspnetcore/blazor-improve-how-forms-work/4-take-advantage-power-blazor-forms.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: learning-content
66
title: "Take advantage of the power of Blazor forms"
77
description: "Learn how to use Blazor input elements with Blazor forms"
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl
@@ -23,18 +23,18 @@ quiz:
2323
explanation: "This event executes when EditForm fields are submitted with invalid content"
2424
- content: "OnFailedValidation"
2525
isCorrect: false
26-
explanation: "This sounds like a good name for an event, but is not correct"
26+
explanation: "This sounds like a good name for an event, but isn't correct"
2727
- content: "OnFailedSubmit"
2828
isCorrect: false
29-
explanation: "'Failed' is not part of the event name that is raised"
29+
explanation: "'Failed' isn't part of the event name that is raised"
3030
- content: "An EditForm has the following features EXCEPT:"
3131
choices:
3232
- content: "Data Binding"
3333
isCorrect: false
3434
explanation: "The EditForm can be associated with an object and then acts like a view of the object for data entry purposes"
3535
- content: "Data cleansing"
3636
isCorrect: true
37-
explanation: "While you can edit the content of an EditForm, it does not perform data cleansing operations on its own"
37+
explanation: "While you can edit the content of an EditForm, it doesn't perform data cleansing operations on its own"
3838
- content: "Validation"
3939
isCorrect: false
4040
explanation: "An EditForm extensive and extensible validation capabilities"

learn-pr/aspnetcore/blazor-improve-how-forms-work/5-exercise-create-address-form-blazor-components.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: Exercise
66
title: "Exercise - Create an address form with Blazor components"
77
description: "Build an address form and connect it to a data model."
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl

learn-pr/aspnetcore/blazor-improve-how-forms-work/6-validate-user-input-implicitly.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: learning-content
66
title: "Validate user input implicitly without writing validation code"
77
description: "Learn how to use Blazor's events to validate user input in forms."
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl
@@ -20,18 +20,18 @@ quiz:
2020
choices:
2121
- content: "ValidationMessage"
2222
isCorrect: false
23-
explanation: "The ValidationMessage component will display the message for one component, not a summary"
23+
explanation: "The ValidationMessage component displays the message for one component, not a summary"
2424
- content: "DataAnnotationsValidator"
2525
isCorrect: false
26-
explanation: "This component activates the validations in the EditForm, but does not display a summary of validation message"
26+
explanation: "This component activates the validations in the EditForm, but doesn't display a summary of validation message"
2727
- content: "ValidationSummary"
2828
isCorrect: true
2929
explanation: "This component displays a summary of all the validation messages in a submitted form"
30-
- content: "Which of these is NOT a standard input elements that comes with Blazor?"
30+
- content: "Which of these choices is NOT a standard input element that comes with Blazor?"
3131
choices:
3232
- content: "Guid"
3333
isCorrect: true
34-
explanation: "Guid is not part of the standard input elements provided by Blazor"
34+
explanation: "Guid isn't part of the standard input elements provided by Blazor"
3535
- content: "CreditCard"
3636
isCorrect: false
3737
explanation: "CreditCard is one of the standard input elements provided by Blazor"

learn-pr/aspnetcore/blazor-improve-how-forms-work/7-exercise-add-server-client-side-data-validation-address-form.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: Exercise
66
title: "Exercise - Add server-side and client-side data validation to the address form "
77
description: "Use data annotations on a model to add custom validation to a Blazor EditForm component."
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl

learn-pr/aspnetcore/blazor-improve-how-forms-work/8-summary.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ metadata:
55
unitType: summary
66
title: "Summary"
77
description: "In this unit, you'll review what you've learned about forms in Blazor web apps."
8-
ms.date: 11/09/2023
8+
ms.date: 01/09/2025
99
author: csharpfritz
1010
ms.author: jefritz
1111
ms.manager: markl

0 commit comments

Comments
 (0)