fbpx

Separando o appsettings de desenvolvimento e de produção no .Net Core

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.

Estrutura padrão de um projeto no ASP.Net Core MVC

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.

Leave a reply

Todos os direitos reservados © 2023