Skip to content

Commit 3a597eb

Browse files
authored
Merge pull request #266622 from zhiyuanliang-ms/zhiyuanliang/remove-net-core-tab
Azure App Configuration - Remove .NET Core and some miscellaneous changes
2 parents 2bc52cf + 932ed40 commit 3a597eb

23 files changed

+71
-554
lines changed

articles/azure-app-configuration/cli-samples.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ The following table includes links to Azure CLI scripts for Azure App Configurat
1818
|**Create**||
1919
| [Create an App Configuration store](./scripts/cli-create-service.md) | Creates a resource group and an App Configuration store instance. |
2020
|**Use**||
21-
| [Work with key values](./scripts/cli-work-with-keys.md) | Creates, views, updates, and deletes key values. |
22-
| [Import key values](./scripts/cli-import.md) | Imports key values from other sources. |
23-
| [Export key values](./scripts/cli-export.md) | Exports key values to other targets. |
21+
| [Work with key-values](./scripts/cli-work-with-keys.md) | Creates, views, updates, and deletes key-values. |
22+
| [Import key-values](./scripts/cli-import.md) | Imports key-values from other sources. |
23+
| [Export key-values](./scripts/cli-export.md) | Exports key-values to other targets. |
2424
|**Delete**||
2525
| [Delete an App Configuration store](./scripts/cli-delete-service.md) | Deletes an App Configuration store instance. |
2626
| | |

articles/azure-app-configuration/concept-customer-managed-keys.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Use customer-managed keys to encrypt your configuration data
33
description: Encrypt your configuration data using customer-managed keys
44
author: maud-lv
55
ms.author: malev
6-
ms.date: 08/30/2022
6+
ms.date: 02/20/2024
77
ms.custom: devdivchpfy22, devx-track-azurecli
88
ms.topic: conceptual
99
ms.service: azure-app-configuration
@@ -38,21 +38,9 @@ After these resources are configured, use the following steps so that the Azure
3838
1. Assign a managed identity to the Azure App Configuration instance.
3939
1. Grant the identity `GET`, `WRAP`, and `UNWRAP` permissions in the target Key Vault's access policy.
4040

41-
## Enable customer-managed key encryption for your Azure App Configuration instance
41+
## Enable customer-managed key encryption for your App Configuration store
4242

43-
To begin, you'll need a properly configured Azure App Configuration instance. If you don't yet have an App Configuration instance available, follow one of these quickstarts to set one up:
44-
45-
- [Create an ASP.NET Core app with Azure App Configuration](quickstart-aspnet-core-app.md)
46-
- [Create a .NET Core app with Azure App Configuration](quickstart-dotnet-core-app.md)
47-
- [Create a .NET Framework app with Azure App Configuration](quickstart-dotnet-app.md)
48-
- [Create a Java Spring app with Azure App Configuration](quickstart-java-spring-app.md)
49-
- [Create a JavaScript app with Azure App Configuration](quickstart-javascript.md)
50-
- [Create a Python app with Azure App Configuration](quickstart-python.md)
51-
52-
> [!TIP]
53-
> The Azure Cloud Shell is a free interactive shell that you can use to run the command line instructions in this article. It has common Azure tools preinstalled, including the .NET Core SDK. If you are logged in to your Azure subscription, launch your [Azure Cloud Shell](https://shell.azure.com) from shell.azure.com. You can learn more about Azure Cloud Shell by [reading our documentation](../cloud-shell/overview.md).
54-
55-
### Create and configure an Azure Key Vault
43+
1. [Create an App Configuration store](./quickstart-azure-app-configuration-create.md) if you don't have one.
5644

5745
1. Create an Azure Key Vault by using the Azure CLI. Both `vault-name` and `resource-group-name` are user-provided and must be unique. We use `contoso-vault` and `contoso-resource-group` in these examples.
5846

articles/azure-app-configuration/concept-feature-management.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: malev
66
ms.service: azure-app-configuration
77
ms.custom: devdivchpfy22
88
ms.topic: conceptual
9-
ms.date: 08/17/2022
9+
ms.date: 02/20/2024
1010
---
1111

1212
# Feature management overview
@@ -74,7 +74,7 @@ To use feature flags effectively, you need to externalize all the feature flags
7474

7575
Azure App Configuration provides a centralized repository for feature flags. You can use it to define different kinds of feature flags and manipulate their states quickly and confidently. You can then use the App Configuration libraries for various programming language frameworks to easily access these feature flags from your application.
7676

77-
[The feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the .NET Core App Configuration provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application. For more information on feature flags in Azure App Configuration, see the following articles:
77+
[The feature flags in an ASP.NET Core app](./use-feature-flags-dotnet-core.md) shows how the App Configuration .NET provider and Feature Management libraries are used together to implement feature flags for your ASP.NET web application. For more information on feature flags in Azure App Configuration, see the following articles:
7878

7979
* [Manage feature flags](./manage-feature-flags.md)
8080
* [Use conditional feature flags](./howto-feature-filters-aspnet-core.md)

articles/azure-app-configuration/concept-point-time-snapshot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ You can use the Azure portal or the Azure CLI to retrieve past key-values.
2828
:::image type="content" source="media/restore-key-value-portal.png" alt-text="Screenshot of the Azure portal, selecting restore":::
2929

3030
3. Select **Date: Select date** to select a date and time you want to revert to.
31-
4. Click outside of the date and time fields or press **Tab** to validate your choice. You can now see which key values have changed between your selected date and time and the current time. This step helps you understand what keys and values you're preparing to revert to.
31+
4. Click outside of the date and time fields or press **Tab** to validate your choice. You can now see which key-values have changed between your selected date and time and the current time. This step helps you understand what keys and values you're preparing to revert to.
3232

3333
:::image type="content" source="media/restore-key-value-past-values.png" alt-text="Screenshot of the Azure portal with saved key-values":::
3434

articles/azure-app-configuration/enable-dynamic-configuration-aspnet-core.md

Lines changed: 2 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: zhenlan
66
ms.service: azure-app-configuration
77
ms.devlang: csharp
88
ms.topic: tutorial
9-
ms.date: 09/30/2022
9+
ms.date: 02/20/2024
1010
ms.author: zhenlwa
1111
ms.custom: devx-track-csharp
1212
---
@@ -37,7 +37,6 @@ A *sentinel key* is a key that you update after you complete the change of all o
3737

3838
1. Open *Program.cs*, and update the `AddAzureAppConfiguration` method you added previously during the quickstart.
3939

40-
#### [.NET 6.0+](#tab/core6x)
4140
```csharp
4241
// Load configuration from Azure App Configuration
4342
builder.Configuration.AddAzureAppConfiguration(options =>
@@ -51,35 +50,6 @@ A *sentinel key* is a key that you update after you complete the change of all o
5150
});
5251
```
5352

54-
#### [.NET Core 3.x](#tab/core3x)
55-
```csharp
56-
public static IHostBuilder CreateHostBuilder(string[] args) =>
57-
Host.CreateDefaultBuilder(args)
58-
.ConfigureWebHostDefaults(webBuilder =>
59-
{
60-
webBuilder.ConfigureAppConfiguration(config =>
61-
{
62-
//Retrieve the Connection String from the secrets manager
63-
IConfiguration settings = config.Build();
64-
string connectionString = settings.GetConnectionString("AppConfig");
65-
66-
// Load configuration from Azure App Configuration
67-
config.AddAzureAppConfiguration(options =>
68-
{
69-
options.Connect(connectionString)
70-
// Load all keys that start with `TestApp:` and have no label
71-
.Select("TestApp:*", LabelFilter.Null)
72-
// Configure to reload configuration if the registered sentinel key is modified
73-
.ConfigureRefresh(refreshOptions =>
74-
refreshOptions.Register("TestApp:Settings:Sentinel", refreshAll: true));
75-
});
76-
});
77-
78-
webBuilder.UseStartup<Startup>();
79-
});
80-
```
81-
---
82-
8353
The `Select` method is used to load all key-values whose key name starts with *TestApp:* and that have *no label*. You can call the `Select` method more than once to load configurations with different prefixes or labels. If you share one App Configuration store with multiple apps, this approach helps load configuration only relevant to your current app instead of loading everything from your store.
8454

8555
In the `ConfigureRefresh` method, you register keys you want to monitor for changes in your App Configuration store. The `refreshAll` parameter to the `Register` method indicates that all configurations you specified by the `Select` method will be reloaded if the registered key changes.
@@ -89,7 +59,6 @@ A *sentinel key* is a key that you update after you complete the change of all o
8959

9060
1. Add Azure App Configuration middleware to the service collection of your app.
9161

92-
#### [.NET 6.0+](#tab/core6x)
9362
Update *Program.cs* with the following code.
9463

9564
```csharp
@@ -110,26 +79,8 @@ A *sentinel key* is a key that you update after you complete the change of all o
11079
// ... ...
11180
```
11281

113-
#### [.NET Core 3.x](#tab/core3x)
114-
Open *Startup.cs*, and update the `ConfigureServices` method.
115-
116-
```csharp
117-
public void ConfigureServices(IServiceCollection services)
118-
{
119-
services.AddRazorPages();
120-
121-
// Add Azure App Configuration middleware to the container of services.
122-
services.AddAzureAppConfiguration();
123-
124-
// Bind configuration "TestApp:Settings" section to the Settings object
125-
services.Configure<Settings>(Configuration.GetSection("TestApp:Settings"));
126-
}
127-
```
128-
---
129-
13082
1. Call the `UseAzureAppConfiguration` method. It enables your app to use the App Configuration middleware to update the configuration for you automatically.
13183

132-
#### [.NET 6.0+](#tab/core6x)
13384
Update *Program.cs* withe the following code.
13485

13586
```csharp
@@ -151,40 +102,6 @@ A *sentinel key* is a key that you update after you complete the change of all o
151102
// ... ...
152103
```
153104

154-
#### [.NET Core 3.x](#tab/core3x)
155-
Update the `Configure` method in *Startup.cs*.
156-
157-
```csharp
158-
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
159-
{
160-
if (env.IsDevelopment())
161-
{
162-
app.UseDeveloperExceptionPage();
163-
}
164-
else
165-
{
166-
app.UseExceptionHandler("/Error");
167-
app.UseHsts();
168-
}
169-
170-
// Use Azure App Configuration middleware for dynamic configuration refresh.
171-
app.UseAzureAppConfiguration();
172-
173-
app.UseHttpsRedirection();
174-
app.UseStaticFiles();
175-
176-
app.UseRouting();
177-
178-
app.UseAuthorization();
179-
180-
app.UseEndpoints(endpoints =>
181-
{
182-
endpoints.MapRazorPages();
183-
});
184-
}
185-
```
186-
---
187-
188105
You've set up your app to use the [options pattern in ASP.NET Core](/aspnet/core/fundamentals/configuration/options) during the quickstart. When the underlying configuration of your app is updated from App Configuration, your strongly typed `Settings` object obtained via `IOptionsSnapshot<T>` is updated automatically. Note that you shouldn't use the `IOptions<T>` if dynamic configuration update is desired because it doesn't read configuration data after the app has started.
189106

190107
## Request-driven configuration refresh
@@ -197,7 +114,7 @@ The configuration refresh is triggered by the incoming requests to your web app.
197114

198115
## Build and run the app locally
199116

200-
1. To build the app by using the .NET Core CLI, run the following command in the command shell:
117+
1. To build the app by using the .NET CLI, run the following command in the command shell:
201118

202119
```console
203120
dotnet build

articles/azure-app-configuration/enable-dynamic-configuration-dotnet-core-push-refresh.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
---
2-
title: "Tutorial: Use dynamic configuration using push refresh in a .NET Core app"
2+
title: "Tutorial: Use dynamic configuration using push refresh in a .NET app"
33
titleSuffix: Azure App Configuration
4-
description: In this tutorial, you learn how to dynamically update the configuration data for .NET Core apps using push refresh
4+
description: In this tutorial, you learn how to dynamically update the configuration data for .NET apps using push refresh
55
services: azure-app-configuration
66
author: MBSolomon
77
manager: zhenlan
88
ms.service: azure-app-configuration
99
ms.devlang: csharp
1010
ms.custom: devx-track-dotnet
1111
ms.topic: tutorial
12-
ms.date: 02/03/2022
13-
ms.author: msolomon
12+
ms.date: 02/20/2024
13+
ms.author: malev
1414
#Customer intent: I want to use push refresh to dynamically update my app to use the latest configuration data in App Configuration.
1515
---
16-
# Tutorial: Use dynamic configuration using push refresh in a .NET Core app
16+
# Tutorial: Use dynamic configuration using push refresh in a .NET app
1717

18-
The App Configuration .NET Core client library supports updating configuration on demand without causing an application to restart. An application can be configured to detect changes in App Configuration using one or both of the following two approaches.
18+
The App Configuration .NET client library supports updating configuration on demand without causing an application to restart. An application can be configured to detect changes in App Configuration using one or both of the following two approaches.
1919

2020
1. Poll Model: This is the default behavior that uses polling to detect changes in configuration. Once the cached value of a setting expires, the next call to `TryRefreshAsync` or `RefreshAsync` sends a request to the server to check if the configuration has changed, and pulls the updated configuration if needed.
2121

2222
1. Push Model: This uses [App Configuration events](./concept-app-configuration-event.md) to detect changes in configuration. Once App Configuration is set up to send key value change events to Azure Event Grid, the application can use these events to optimize the total number of requests needed to keep the configuration updated. Applications can choose to subscribe to these either directly from Event Grid, or through one of the [supported event handlers](../event-grid/event-handlers.md) such as a webhook, an Azure function, or a Service Bus topic.
2323

24-
This tutorial shows how you can implement dynamic configuration updates in your code using push refresh. It builds on the app introduced in the tutorial. Before you continue, finish Tutorial: [Use dynamic configuration in a .NET Core app](./enable-dynamic-configuration-dotnet-core.md) first.
24+
This tutorial shows how you can implement dynamic configuration updates in your code using push refresh. It builds on the app introduced in the tutorial. Before you continue, finish Tutorial: [Use dynamic configuration in a .NET app](./enable-dynamic-configuration-dotnet-core.md) first.
2525

2626
You can use any code editor to do the steps in this tutorial. [Visual Studio Code](https://code.visualstudio.com/) is an excellent option that's available on the Windows, macOS, and Linux platforms.
2727

2828
In this tutorial, you learn how to:
2929
> [!div class="checklist"]
3030
>
3131
> * Set up a subscription to send configuration change events from App Configuration to a Service Bus topic
32-
> * Set up your .NET Core app to update its configuration in response to changes in App Configuration.
32+
> * Set up your .NET app to update its configuration in response to changes in App Configuration.
3333
> * Consume the latest configuration in your application.
3434
3535
## Prerequisites
3636

37-
* Tutorial: [Use dynamic configuration in a .NET Core app](./enable-dynamic-configuration-dotnet-core.md)
37+
* Tutorial: [Use dynamic configuration in a .NET app](./enable-dynamic-configuration-dotnet-core.md)
3838
* NuGet package `Microsoft.Extensions.Configuration.AzureAppConfiguration` version 5.0.0 or later
3939

4040
## Set up Azure Service Bus topic and subscription
@@ -171,7 +171,7 @@ The `ProcessPushNotification` method resets the cache expiration to a short rand
171171

172172
The short random delay for cache expiration is helpful if you have many instances of your application or microservices connecting to the same App Configuration store with the push model. Without this delay, all instances of your application could send requests to your App Configuration store simultaneously as soon as they receive a change notification. This can cause the App Configuration Service to throttle your store. Cache expiration delay is set to a random number between 0 and a maximum of 30 seconds by default, but you can change the maximum value through the optional parameter `maxDelay` to the `ProcessPushNotification` method.
173173

174-
The `ProcessPushNotification` method takes in a `PushNotification` object containing information about which change in App Configuration triggered the push notfication. This helps ensure all configuration changes up to the triggering event are loaded in the following configuration refresh. The `SetDirty` method does not gurarantee the change that triggers the push notification to be loaded in an immediate configuration refresh. If you are using the `SetDirty` method for the push model, we recommend using the `ProcessPushNotification` method instead.
174+
The `ProcessPushNotification` method takes in a `PushNotification` object containing information about which change in App Configuration triggered the push notification. This helps ensure all configuration changes up to the triggering event are loaded in the following configuration refresh. The `SetDirty` method does not guarantee the change that triggers the push notification to be loaded in an immediate configuration refresh. If you are using the `SetDirty` method for the push model, we recommend using the `ProcessPushNotification` method instead.
175175

176176
## Build and run the app locally
177177

@@ -243,7 +243,7 @@ The `ProcessPushNotification` method takes in a `PushNotification` object contai
243243

244244
## Next steps
245245

246-
In this tutorial, you enabled your .NET Core app to dynamically refresh configuration settings from App Configuration. To learn how to use an Azure managed identity to streamline the access to App Configuration, continue to the next tutorial.
246+
In this tutorial, you enabled your .NET app to dynamically refresh configuration settings from App Configuration. To learn how to use an Azure managed identity to streamline the access to App Configuration, continue to the next tutorial.
247247

248248
> [!div class="nextstepaction"]
249249
> [Managed identity integration](./howto-integrate-azure-managed-service-identity.md)

0 commit comments

Comments
 (0)