Skip to content

Commit 7d1ddbf

Browse files
authored
pull base content,head:MicrosoftDocs:main,into:wwlpublishsync
2 parents ef9646f + d1febab commit 7d1ddbf

File tree

56 files changed

+403
-1371
lines changed

Some content is hidden

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

56 files changed

+403
-1371
lines changed

.openpublishing.redirection.json

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47223,6 +47223,86 @@
4722347223
"source_path": "learn-pr/paths/manage-security-operations-new/index.md",
4722447224
"redirect_url": "/training/paths/secure-azure-using-microsoft-defender-cloud-sentinel/",
4722547225
"redirect_document_id": false
47226+
},
47227+
{
47228+
"source_path": "learn-pr/paths/az-204-integrate-caching-content-delivery-within-solutions/index.md",
47229+
"redirect_url": "/training/browse/",
47230+
"redirect_document_id": false
47231+
},
47232+
{
47233+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/index.md",
47234+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47235+
"redirect_document_id": false
47236+
},
47237+
{
47238+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/3-configure-azure-cache-redis.md",
47239+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47240+
"redirect_document_id": false
47241+
},
47242+
{
47243+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/5-console-app-azure-cache-redis.md",
47244+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47245+
"redirect_document_id": false
47246+
},
47247+
{
47248+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/2-azure-cache-redis-overview.md",
47249+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47250+
"redirect_document_id": false
47251+
},
47252+
{
47253+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/4-interact-redis-api.md",
47254+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47255+
"redirect_document_id": false
47256+
},
47257+
{
47258+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/1-introduction.md",
47259+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47260+
"redirect_document_id": false
47261+
},
47262+
{
47263+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/6-knowledge-check.md",
47264+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47265+
"redirect_document_id": false
47266+
},
47267+
{
47268+
"source_path": "learn-pr/wwl-azure/develop-for-azure-cache-for-redis/7-summary.md",
47269+
"redirect_url": "/azure/azure-cache-for-redis/cache-overview",
47270+
"redirect_document_id": false
47271+
},
47272+
{
47273+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/index.md",
47274+
"redirect_url": "/azure/frontdoor/",
47275+
"redirect_document_id": false
47276+
},
47277+
{
47278+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/3-control-cache-behavior.md",
47279+
"redirect_url": "/azure/frontdoor/",
47280+
"redirect_document_id": false
47281+
},
47282+
{
47283+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/2-azure-content-delivery-network-overview.md",
47284+
"redirect_url": "/azure/frontdoor/",
47285+
"redirect_document_id": false
47286+
},
47287+
{
47288+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/4-azure-cdn-libraries-dotnet.md",
47289+
"redirect_url": "/azure/frontdoor/",
47290+
"redirect_document_id": false
47291+
},
47292+
{
47293+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/1-introduction.md",
47294+
"redirect_url": "/azure/frontdoor/",
47295+
"redirect_document_id": false
47296+
},
47297+
{
47298+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/5-knowledge-check.md",
47299+
"redirect_url": "/azure/frontdoor/",
47300+
"redirect_document_id": false
47301+
},
47302+
{
47303+
"source_path": "learn-pr/wwl-azure/develop-for-storage-cdns/6-summary.md",
47304+
"redirect_url": "/azure/frontdoor/",
47305+
"redirect_document_id": false
4722647306
}
4722747307
]
4722847308
}

learn-pr/achievements.yml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5689,4 +5689,19 @@ achievements:
56895689
type: trophy
56905690
title: 'AZ-500: Manage security operations'
56915691
summary: Master the art of managing security operations in Azure, from governance and policy creation to infrastructure security, key management, security posture, threat protection, and advanced security monitoring and automation.
5692-
iconUrl: /training/achievements/generic-trophy.svg
5692+
iconUrl: /training/achievements/generic-trophy.svg
5693+
- uid: learn.wwl.az-204-integrate-caching-content-delivery-within-solutions.trophy
5694+
type: trophy
5695+
title: 'AZ-204: Implement caching for solutions'
5696+
summary: Learn how to improve the performance and scalability of your applications by integrating Azure Cache for Redis and Azure Content Delivery Network in to your solution.
5697+
iconUrl: /training/achievements/integrate-content-delivery.svg
5698+
- uid: learn.wwl.develop-for-azure-cache-for-redis.badge
5699+
type: badge
5700+
title: Develop for Azure Cache for Redis
5701+
summary: Learn how to configure Azure Cache for Redis, interact with the cache, and connect an application to Azure Cache for Redis by using .NET.
5702+
iconUrl: /training/achievements/azure-cache-redis.svg
5703+
- uid: learn.wwl.develop-for-storage-cdns.badge
5704+
type: badge
5705+
title: Develop for storage on CDNs
5706+
summary: Learn how the Azure Content Delivery Network (CDN) functions, how to control cache behavior, and how to perform actions by using .NET.
5707+
iconUrl: /training/achievements/cdn-develop-storage.svg

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/1-introduction.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Introduction
44
metadata:
55
title: Introduction
66
description: Move app logic to objects that are bound to the apps UI. Data bindings can make your code faster to read, easier to maintain, and more testable.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/2-compare-event-and-data-driven.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Compare an event-driven UI to a data-bound UI
44
metadata:
55
title: Compare an event-driven UI to a data-bound UI
66
description: In this unit, you'll compare an event-driven UI to a data-bound UI.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit
@@ -18,15 +18,15 @@ quiz:
1818
choices:
1919
- isCorrect: false
2020
content: "You never have to write code related to your UI again."
21-
explanation: "While you could design a code-less UI, you don't have to, and it's not the most important feature of data binding. Data binding is beneficial because it provides a system where you have real-time updates to the UI when the underlying data changes."
21+
explanation: "While you could design a codeless UI, you don't have to, and it's not the most important feature of data binding. Data binding is beneficial because it provides a system where you have real-time updates to the UI when the underlying data changes."
2222
- isCorrect: true
2323
content: "The UI is automatically kept in sync with the data."
24-
explanation: "One benefit of adding data binding your UI, is that it keeps the UI elements in sync with the properties of the data object. It also helps separate app logic from app presentation."
24+
explanation: "One benefit of adding data binding your UI is that it keeps the UI elements in sync with the properties of the data object. It also helps separate app logic from app presentation."
2525
- content: "In an app that retrieves the latest weather, a label control that represents the temperature is bound to the data object. When the user presses the \"Get Weather\" button, triggering the `Clicked` event, what would the event handler code do to update the UI?"
2626
choices:
2727
- isCorrect: true
2828
content: "From the event handler, invoke the weather service and update the weather data object with the latest information."
29-
explanation: "Since the code-behind is only \"talking\" to the data object and not the label, it isn't tightly coupled to the label. The label automatically updates its text when the bound data object is changed."
29+
explanation: "Because the code-behind is only \"talking\" to the data object and not the label, it isn't tightly coupled to the label. The label automatically updates its text when the bound data object is changed."
3030
- isCorrect: false
3131
content: "From the event handler, do nothing. The temperature label is data bound so it should update automatically."
3232
explanation: "Even though the text of the label is bound to the data object, something still needs to retrieve the latest data and put it into the data object. Otherwise, if the data object doesn't update, neither does the UI."

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/3-use-data-bindings-xaml.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Use data bindings in XAML
44
metadata:
55
title: Use data bindings in XAML
66
description: In this unit, you'll learn about how to declare and use data bindings in XAML.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/4-exercise-replace-code-with-data-bindings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Exercise - Replace code with .NET MAUI bindings
44
metadata:
55
title: Exercise - Replace code with .NET MAUI bindings
66
description: Learn how to convert a XAML UI that uses event handlers to display data, to a UI that uses data binding.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/5-databinding-mismatched-types.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Data binding with mismatched types
44
metadata:
55
title: Data binding with mismatched types
66
description: Learn how to data binding between two mismatched property types.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/6-exercise-create-converter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Exercise - Create a .NET MAUI converter
44
metadata:
55
title: Exercise - Create a .NET MAUI converter
66
description: Learn how to implement a converter that converts an enumeration to an image resource.
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/7-summary.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Summary
44
metadata:
55
title: Summary
66
description: Summary
7-
ms.date: 02/15/2024
7+
ms.date: 04/16/2025
88
author: adegeo
99
ms.author: adegeo
1010
ms.topic: unit

learn-pr/dot-net-maui/separate-ui-and-logic-with-data-binding/includes/1-introduction.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
Data binding lets you declare relationships between your data and your user interface (UI) controls. They automatically stay in sync when either element changes. Data bindings can make your code faster to read, easier to maintain, and more testable.
22

3-
Data binding offers a way of coupling your UI directly to data instead of associating your UI with code in the UI's code-behind. When the UI is bound to data, the UI automatically updates when the data changes, staying in sync with the data. Oppositely If the user interacts with the UI, the data is kept in sync with the UI.
3+
Data binding offers a way of coupling your UI directly to data instead of associating your UI with code in the UI's code-behind. When the UI is bound to data, the UI automatically updates when the data changes, staying in sync with the data. Conversely, if the user interacts with the UI, the data stays in sync with the UI.
44

55
## Example scenario
66

7-
Imagine you're working on an app that presents users with weather information for a selected region or address. As the user inputs a location, the app loads the weather forecast data from an external weather service and updates the UI. The UI and the weather service data are tightly coupled via the XAML UI and the XAML code-behind file. The weather service is already abstracted to its own class, but your UI relies heavily on the code-behind to present that data to the UI.
7+
Imagine you're working on an app that presents users with weather information for a selected region or address. As the user inputs a location, the app loads the weather forecast data from an external weather service and updates the UI. The UI and the weather-service data are tightly coupled via the XAML UI and the XAML code-behind file. The weather service is already abstracted to its own class, but your UI relies heavily on the code-behind to present that data to the UI.
88

9-
Some time after your app is released, the weather service you use announces that they're going to be shutting down. Anticipating this, you start looking for a replacement service. Of the services you've evaluated, you notice that they all input and output data in different ways. Since your UI uses code-behind events for interaction with the service, your UI experience could be impacted by this change.
9+
Some time after your app is released, the weather service you use announces that they're shutting down. Anticipating this, you start looking for a replacement service. Of the services you've evaluated, you notice that they all input and output data in different ways. Because your UI uses code-behind events for interaction with the service, your UI experience could be impacted by this change.
1010

11-
It would be useful to change how the UI synchronizes the weather updates, from code-behind events to data binding. This way, if a service change happens again, you have minimized the impact to your code.
11+
It would be useful to change how the UI synchronizes the weather updates, from code-behind events to data binding. This way, if a service change happens again, you've minimized the impact to your code.
1212

13-
## What will you do
13+
## What you'll do
1414

1515
This module demonstrates the differences between a code-based UI and a data-bound UI and shows you how to use data binding to update the UI instead of code-behind. Using a sample weather app, you'll convert UI updates from code-behind to data binding.
1616

17-
## What do you learn
17+
## What you'll learn
1818

19-
By the end of this module, you're able to use data binding to present data in the UI, and transform data when the UI types and data types don't match.
19+
By the end of this module, you'll be able to use data binding to present data in the UI, and transform data when the UI types and data types don't match.
2020

2121
## Prerequisites
2222

0 commit comments

Comments
 (0)