In this quickstart, you incorporate Azure App Configuration into an ASP.NET Core app to centralize storage and management of application settings separate from your code. ASP.NET Core builds a single key-value-based configuration object by using settings from one or more data sources that are specified by an application. These data sources are known as configuration providers. Because App Configuration’s .NET Core client is implemented as such a provider, the service appears like another data source.
Create an app configuration store
To create a new App Configuration store, sign in to the Azure portal. In the upper-left corner of the pane, select +Create a resource. In the Search the Marketplace box, enter App Configuration and select Enter.
Select App Configuration from the search results, and then select Create.
On the App Configuration > Create pane, enter the following settings:
Setting Suggested value Description Resource name Globally unique name Enter a unique resource name to use for the App Configuration store resource. The name must be a string between 1 and 63 characters and contain only numbers, letters, and the
-character. The name can’t start or end with the
-character, and consecutive
-characters aren’t valid.
Subscription Your subscription Select the Azure subscription that you want to use to test App Configuration. If your account has only one subscription, it’s automatically selected and the Subscription list isn’t displayed. Resource group AppConfigTestResources Select or create a resource group for your App Configuration store resource. This group is useful for organizing multiple resources that you might want to delete at the same time by deleting the resource group. For more information, see Use resource groups to manage your Azure resources. Location Central US Use Location to specify the geographic location in which your app configuration store is hosted. For the best performance, create the resource in the same region as other components of your application.
Select Create. The deployment might take a few minutes to finish.
After the deployment is finished, select Settings > Access Keys. Make a note of either the primary read-only or primary read-write key connection string. You’ll use this connection string later to configure your application to communicate with the App Configuration store that you created.
Select Configuration Explorer > + Create to add the following key-value pairs:
Key Value TestApp:Settings:BackgroundColor White TestApp:Settings:FontSize ۲۴ TestApp:Settings:FontColor Black TestApp:Settings:Message Data from Azure App Configuration
Leave Label and Content Type empty for now.
Create an ASP.NET Core web app
You use the .NET Core command-line interface (CLI) to create a new ASP.NET Core MVC web app project. The advantage of using the .NET Core CLI over Visual Studio is that it’s available across the Windows, macOS, and Linux platforms.
Create a new folder for your project. For this quickstart, name it TestAppConfig.
In the new folder, run the following command to create a new ASP.NET Core MVC web app project:
dotnet new mvc --no-https
Add Secret Manager
To use Secret Manager, add a
UserSecretsId element to your .csproj file.
Open the .csproj file. Add a
UserSecretsIdelement as shown here. You can use the same GUID, or you can replace this value with your own. Save the file.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> <UserSecretsId>79a3edd0-2092-40a2-a04d-dcb46d5ca9ed</UserSecretsId> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" /> </ItemGroup> </Project>
The Secret Manager tool stores sensitive data for development work outside of your project tree. This approach helps prevent the accidental sharing of app secrets within source code. For more information on Secret Manager, please see Safe storage of app secrets in development in ASP.NET Core
Connect to an app configuration store
Add a reference to the
Microsoft.Azure.AppConfiguration.AspNetCoreNuGet package by running the following command:
dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore --version 2.0.0-preview-010060003-1250
Run the following command to restore packages for your project:
Add a secret named ConnectionStrings:AppConfig to Secret Manager.
This secret contains the connection string to access your app configuration store. Replace the value in the following command with the connection string for your app configuration store.
This command must be executed in the same directory as the .csproj file.
dotnet user-secrets set ConnectionStrings:AppConfig <your_connection_string>
Some shells will truncate the connection string unless it is enclosed in quotes. Ensure that the output of the
dotnet user-secretscommand shows the entire connection string. If it doesn’t, rerun the command, enclosing the connection string in quotes.
Secret Manager is used only to test the web app locally. When the app is deployed to Azure App Service, for example, you use an application setting Connection Strings in App Service instead of with Secret Manager to store the connection string.
This secret is accessed with the configuration API. A colon (:) works in the configuration name with the configuration API on all supported platforms. See Configuration by environment.
Open Program.cs, and add a reference to the .NET Core App Configuration provider.
CreateWebHostBuildermethod to use App Configuration by calling the
public static IWebHostBuilder CreateWebHostBuilder(string args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration((hostingContext, config) => var settings = config.Build(); config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]); ) .UseStartup<Startup>();
Open Index.cshtml in the Views > Home directory, and replace its content with the following code:
@using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <style> body background-color: @Configuration["TestApp:Settings:BackgroundColor"] h1 color: @Configuration["TestApp:Settings:FontColor"]; font-size: @Configuration["TestApp:Settings:FontSize"]; </style> <h1>@Configuration["TestApp:Settings:Message"]</h1>
Open _Layout.cshtml in the Views > Shared directory, and replace its content with the following code:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>@ViewData["Title"] - hello_world</title> <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" /> <link rel="stylesheet" href="~/css/site.css" /> </head> <body> <div class="container body-content"> @RenderBody() </div> <script src="~/lib/jquery/dist/jquery.js"></script> <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script> <script src="~/js/site.js" asp-append-version="true"></script> @RenderSection("Scripts", required: false) </body> </html>
Build and run the app locally
To build the app by using the .NET Core CLI, run the following command in the command shell:
After the build successfully completes, run the following command to run the web app locally:
Open a browser window, and go to
http://localhost:5000, which is the default URL for the web app hosted locally.
Clean up resources
If you plan to continue to the next tutorial, keep the resources you created in this quickstart. You can reuse them in the next tutorial.
If you’re finished with the quickstart sample application, delete the Azure resources you created in this quickstart to avoid charges.
Deleting a resource group is irreversible. The resource group and all the resources in it are permanently deleted. Make sure that you don’t accidentally delete the wrong resource group or resources. If you created the resources for hosting this sample inside a resource group that contains resources you want to keep, delete each resource individually from its respective pane instead of deleting the resource group.
- Sign in to the Azure portal, and select Resource groups.
- In the Filter by name box, enter the name of your resource group. The instructions for this quickstart used a resource group named AppConfigTestResources.
- In the result list, select the resource group, and either right-click the row or use the ellipsis (…) button to open the context menu.
- Select Delete resource group.
- You’re asked to confirm the deletion of the resource group. Enter the name of your resource group to confirm, and select Delete.
After a few moments, the resource group and all its resources are deleted.
In this quickstart, you created a new app configuration store and used it with an ASP.NET Core web app via the App Configuration provider. To learn more about how to use App Configuration, continue to the next tutorial that demonstrates how to configure your web app to dynamically refresh configuration settings.