O AppSettings.json
O AppSettings.json do .NET Core melhorou muito a forma de configurar aplicativos, deixando para trás o complicado XML do web.config. Se você mexeu nas antigas versões do .NET, sabe bem das dificuldades com as tags e hierarquias do web.config.
Agora, estamos no mundo do .NET Core usando JSON. E quando cria um site em ASP.NET Core, o appsettings.json já vem junto. As configurações do web.config agora estão nesse novo arquivo.
No começo do ASP.NET Core, as configurações estavam no Startup.cs. Hoje, tudo está em WebHost.CreateDefaultBuilder(args)
no Program.cs.
Detalhes Importantes
Ao criar a configuração no WebHost, o valor env.EnvironmentName
pega a variável de ambiente ASPNETCORE_ENVIRONMENT. Você pode mudar isso no arquivo launchSettings.json ou no ambiente.
No modo "Desenvolvimento", os User Secrets ajudam a proteger dados sensíveis.
Ordem das Configurações
O AppSettings segue uma ordem:
- Primeiro o
appsettings.json
na raiz do projeto. - Depois, mistura com
.{VARIAVEL_DE_AMBIENTE}.json
. - Adiciona User Secrets.
- Depois vêm as variáveis de ambiente.
- E por fim, os argumentos de linha de comando.
Essa ordem não muda.
Hierarquia
O AppSettings permite ter configurações diferentes para cada ambiente.
User Secrets
Os User Secrets protegem dados importantes.
Configurando User Secrets
Para configurar, no Visual Studio, clique com o botão direito no projeto e escolha "Manage User Secrets". O arquivo fica em %USERPROFILE%\AppData\Roaming\Microsoft\UserSecrets\
.
Usar em vários projetos
Para usar o mesmo User Secrets em outros projetos, adicione <UserSecretsId>id</UserSecretsId>
no csproj.
Variáveis de Ambiente
O ASP.NET Core usa ASPNETCORE_ENVIRONMENT
para definir o ambiente, que pode ser Development, Staging ou Production.
No Linux, preste atenção, ele não considera maiúsculas como Windows e Mac.
No Visual Studio, altere nas propriedades do projeto > Debug.
No Docker, use Dockerfile e Compose para ajustar variáveis.
Azure AppService
No Azure AppService, configure em App Services > Seu App Service > Configuration.
Alterando Configurações Intermediárias
No appsettings.json
, temos subníveis de configuração.
Para Docker, use dois pontos :.
Dockerfile
ENV ApplicationSettings:OneMoreLevel:3rdLevel: "Changed!"
Azure AppService
No Azure AppService, as regras são:
Windows
Use dois pontos :.
Linux
Use underline duplo __.
Extras
No Azure AppService, veja variáveis de ambiente pelo Kudu: AppService > Seu App Service > Advanced Tools > Go.
Conclusão
Espero que isso ajude a entender um pouco mais sobre como configurar o .NET Core.