Tutorial: Use configuração dinâmica numa aplicação .NET Framework

Os dados de App Configuration podem ser carregados como Configurações de Aplicações numa aplicação .NET Framework. Para mais informações, consulte o quickstart. No entanto, tal como é projetado pela .NET Framework, as Definições de Aplicações só podem ser atualizadas após o reinício da aplicação. O fornecedor App Configuration .NET é uma biblioteca .NET Standard. Suporta a configuração de caching e refrescante dinamicamente sem reiniciar a aplicação. Este tutorial mostra como pode implementar atualizações de configuração dinâmica numa aplicação de consola .NET Framework.

Neste tutorial, ficará a saber como:

  • Crie a sua aplicação .NET Framework para atualizar a sua configuração em resposta a alterações numa loja App Configuration.
  • Injete a configuração mais recente na sua aplicação.

Pré-requisitos

Criar uma loja App Configuration

  1. Para criar uma nova loja de App Configuration, inscreva-se no portal do Azure.

  2. No canto superior esquerdo da página inicial, selecione Criar um recurso.

  3. Nos serviços de Pesquisa e caixa de mercado, introduza App Configuration e selecione Enter.

    Screenshot que mostra a página Search for App Configuration.

  4. Selecione App Configuration dos resultados da pesquisa e, em seguida, selecione Criar.

    Screenshot que mostra a página Criar.

  5. No painel De criação App Configuration, introduza as seguintes definições:

    Definição Valor sugerido Descrição
    Subscrição A sua subscrição Selecione a subscrição Azure que pretende utilizar para testar App Configuration. Se a sua conta tiver apenas uma subscrição, é selecionada automaticamente e a lista de Assinaturas não é apresentada.
    Grupo de recursos AppConfigTestResources Selecione ou crie um grupo de recursos para o seu recurso App Configuration loja. Este grupo é útil para organizar múltiplos recursos que você pode querer eliminar ao mesmo tempo, eliminando o grupo de recursos. Para obter mais informações, veja Utilizar grupos de recursos para gerir os recursos do Azure.
    Nome de recurso Nome globalmente exclusivo Introduza um nome de recurso único para usar para o recurso App Configuration loja. O nome deve ser uma corda entre 5 e 50 caracteres e conter apenas números, letras e o - personagem. O nome não pode começar ou terminar com o - personagem.
    Localização E.U.A. Central Utilize a Localização para especificar a localização geográfica em que a sua loja de configuração de aplicações está hospedada. Para obter o melhor desempenho, crie o recurso na mesma região que outros componentes da sua aplicação.
    Escalão de preço Gratuito Selecione o nível de preços pretendido. Para mais informações, consulte a página de preços App Configuration.
  6. Selecione Rever + criar para validar as suas definições.

  7. Selecione Criar. A implantação pode demorar alguns minutos.

  8. Depois de terminar a implantação, vá ao App Configuration recurso. Selecione Definições>Chaves de acesso. Tome nota da ligação principal apenas para leitura. Mais tarde, utilizará esta cadeia de ligação para configurar a sua aplicação para comunicar com a loja App Configuration que criou.

  1. Selecione Configuration explorer>+ Crie>valor de chave para adicionar o seguinte valor-chave:

    Chave Valor
    TestApp:Definições:Mensagem Dados de Azure App Configuration

    Deixe a etiqueta e o tipo de conteúdo vazios.

Criar uma aplicação de consola .NET Framework

  1. Inicie o Visual Studio e selecione Criar um novo projeto.

  2. In Create a new project, filter on the Console project type and select Console App (.NET Framework) with C# from the project template list. Pressione a seguir.

  3. Em Configurar o seu novo projeto, insira um nome de projeto. No Quadro, selecione .NET Framework 4.7.2 ou superior. Prima Criar.

Recarregar dados de App Configuration

  1. Clique com o botão direito no seu projeto e selecione Gerir pacotes NuGet. No separador Browse , procure e adicione a versão mais recente do pacote NuGet que se segue ao seu projeto.

    Microsoft. Extensões.Configuration.AzureAppConfiguration

  2. Programa Aberto.cs e adicione os seguintes espaços de nome.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    
  3. Adicione duas variáveis para armazenar objetos relacionados com a configuração.

    private static IConfiguration _configuration;
    private static IConfigurationRefresher _refresher;
    
  4. Atualize o Main método de ligação à App Configuration com as opções de atualização especificadas.

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder();
        builder.AddAzureAppConfiguration(options =>
        {
            options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                    // Load all keys that start with `TestApp:`.
                    .Select("TestApp:*")
                    // Configure to reload the key 'TestApp:Settings:Message' if it is modified.
                    .ConfigureRefresh(refresh =>
                    {
                        refresh.Register("TestApp:Settings:Message")
                               .SetCacheExpiration(TimeSpan.FromSeconds(10));
                    });
    
            _refresher = options.GetRefresher();
        });
    
        _configuration = builder.Build();
        PrintMessage().Wait();
    }
    

    No método, uma chave dentro da ConfigureRefresh sua loja App Configuration está registada para monitorização de alterações. O Register método tem um parâmetro refreshAll boolean opcional que pode ser usado para indicar se todos os valores de configuração devem ser atualizados se a chave registada mudar. Neste exemplo, apenas a chave TestApp:Settings:Message será atualizada. O SetCacheExpiration método especifica o tempo mínimo que deve decorrer antes de um novo pedido App Configuration para verificar se há alterações de configuração. Neste exemplo, sobrepõe-se ao tempo de validade padrão de 30 segundos, especificando um tempo de 10 segundos em vez de para fins de demonstração.

  5. Adicione um método chamado PrintMessage() que desencadeia uma atualização de dados de configuração de App Configuration.

    private static async Task PrintMessage()
    {
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    
        // Wait for the user to press Enter
        Console.ReadLine();
    
        await _refresher.TryRefreshAsync();
        Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
    }
    

    Ligar o ConfigureRefresh método por si só não fará com que a configuração se asseque automaticamente. Ligue para o TryRefreshAsync método da interface IConfigurationRefresher para desencadear uma atualização. Este design é para evitar pedidos fantasma enviados para App Configuration mesmo quando a sua aplicação está inativa. Pode incluir a chamada onde considera a TryRefreshAsync sua aplicação ativa. Por exemplo, pode ser quando processa uma mensagem recebida, uma ordem ou uma iteração de uma tarefa complexa. Também pode ser num temporizador se a sua aplicação estiver sempre ativa. Neste exemplo, ligue TryRefreshAsync quando premir a tecla 'Entrar'. Note que, mesmo que a chamada TryRefreshAsync falhe por qualquer motivo, a sua aplicação continuará a utilizar a configuração em cache. Outra tentativa será feita quando o tempo de validade da cache configurado tiver passado e a TryRefreshAsync chamada for novamente desencadeada pela sua atividade de aplicação. A chamada TryRefreshAsync é um não-op antes do tempo de validade da cache configurado decorrer, por isso o seu impacto de desempenho é mínimo, mesmo que seja chamado frequentemente.

Construa e execute a app localmente

  1. Desajuste uma variável ambiental chamada ConnectionString para a cadeia de ligação apenas de leitura obtida durante a criação da sua loja App Configuration.

    Se utilizar o pedido de comando do Windows, executar o seguinte comando:

    setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Se utilizar Windows PowerShell, executar o seguinte comando:

    $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    
  2. Reinicie o Estúdio Visual para permitir que a mudança entre em vigor.

  3. Prima Ctrl + F5 para construir e executar a aplicação da consola.

    App lança local

  4. Na portal do Azure, navegue para o explorador de configuração da sua loja App Configuration e atualize o valor da seguinte chave.

    Chave Valor
    TestApp:Definições:Mensagem Dados da Azure App Configuration - Atualizado
  5. Voltando à aplicação de execução, prima a tecla 'Introduzir' para ativar uma atualização e imprimir o valor atualizado na janela 'Solicitação de Comando' ou PowerShell.

    App atualizar local

    Nota

    Uma vez que o tempo de validade da cache foi definido para 10 segundos usando o SetCacheExpiration método enquanto especifica a configuração para a operação de atualização, o valor para a definição de configuração só será atualizado se pelo menos 10 segundos decorridos desde a última atualização para essa definição.

Limpar os recursos

Se não quiser continuar a utilizar os recursos criados neste artigo, elimine o grupo de recursos que criou aqui para evitar encargos.

Importante

A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele são permanentemente eliminados. Certifique-se de que não apaga acidentalmente o grupo ou recursos errados. Se criou os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que pretende manter, elimine cada recurso individualmente do seu respetivo painel em vez de eliminar o grupo de recursos.

  1. Inscreva-se no portal do Azure e selecione grupos de recursos.
  2. Na caixa de identificação filter by name , insira o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para ver uma visão geral.
  4. Selecione Eliminar grupo de recursos.
  5. É-lhe pedido que confirme a eliminação do grupo de recursos. Introduza o nome do seu grupo de recursos para confirmar e selecione Delete.

Após alguns momentos, o grupo de recursos e todos os seus recursos são eliminados.

Passos seguintes

Neste tutorial, permitiu que a sua aplicação .NET Framework atualizasse dinamicamente as configurações de configuração a partir de App Configuration. Para aprender como ativar a configuração dinâmica numa aplicação web ASP.NET (.NET Framework), continue até ao próximo tutorial:

Para aprender a usar uma identidade gerida pelo Azure para agilizar o acesso a App Configuration, continue até ao próximo tutorial: