O appsettings.json é um arquivo de configuração para projetos .NET Core e funciona de forma semelhante ao web.config e o app.config dos projetos .NET Framework.
No Core, a separação da configuração de Debug e Release (desenvolvimento e produção) não são tão intuitivas, porém é de fácil implementação.
Essa separação é importante para evitar principalmente a utilização de string de conexão que não corresponda ao ambiente que você esteja utilizando, por exemplo, a publicação em produção utilizando um banco de desenvolvimento.
Separando o appsettings
Dada a estrutura padrão de um projeto em ASP.Net Core MVC ou api, crie o arquivo na pasta raiz chamado appsettings.Production.json, onde ficará as configurações especificas da publicação em produção.

Observação: é importante tomar cuidado de deixar no appsettings.json somente os parâmetros que são comuns aos dois. O development ou o production não sobrescreve a configuração, dando prioridade total para o appsetings.json.
O appsettings de desenvolvimento
Abra o appsettings.Development.json e adicione a seguinte configuração:
{
"Parametros": {
"Local": "Development"
},
"ConnectionStrings": {
"DefaultConnection": "server=localhost;userid=root;password=123456;database=banco_desenvolvimento;"
}
}
Observação: a configuração ConnectionStrings.DefaultConnection poderá variar, por isso, se for um projeto já existente, é importante manter a estrutura já utilizada.
O appsettings de produção
Abra o appsettings.Production.json e adicione a seguinte configuração:
{
"Parametros": {
"Local": "Development"
},
"ConnectionStrings": {
"DefaultConnection": "server=localhost;userid=root;password=123456;database=banco_producao;"
}
}
Testando e publicando
A configuração Parametros.Local é só para testar se a configuração funciona. Você poderá criar um ContentResult em uma Controller qualquer com o seguinte código para mostrar esse parâmetro e assim verificar o correto funcionamento:
[AllowAnonymous]
public ContentResult Teste([FromServices]IConfiguration configuration)
{
return Content(configuration["Parametros:Local"]);
}
Execute o projeto e verifique se retornará o valor correspondente.
Ao publicar o projeto, marcando o publish como release que a configuração do appsettings.Production.json irá automaticamente para o a produção.


Deixe um comentário