Cómo configurar ambientes Development, Staging y Production en .NET

Cómo configurar ambientes Development, Staging y Production en .NET

Al desarrollar aplicaciones con ASP.NET Core, es fundamental separar la configuración según el entorno donde se ejecutará la aplicación. No es lo mismo trabajar en tu equipo local que desplegar en un servidor de pruebas o en producción. Para ello, .NET incorpora un sistema de ambientes (Environments) que facilita administrar configuraciones de forma segura y organizada.

Los tres ambientes más comunes son:

  • Development: utilizado durante el desarrollo. Permite mostrar errores detallados, habilitar herramientas como Swagger y usar configuraciones locales.
  • Staging: representa un entorno de pruebas muy similar a producción. Aquí se validan cambios antes de publicarlos.
  • Production: ambiente donde los usuarios finales utilizan la aplicación. Debe priorizar rendimiento, seguridad y estabilidad.

¿Cómo funciona?

ASP.NET Core utiliza la variable de entorno ASPNETCORE_ENVIRONMENT para identificar el ambiente actual. Los valores más utilizados son:

Development
Staging
Production

Puedes configurarla desde Visual Studio, el archivo launchSettings.json, Docker, IIS, Azure o el sistema operativo.

Por ejemplo:

{
  "profiles": {
    "MiApi": {
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Archivos de configuración por ambiente

Una de las mayores ventajas es poder utilizar diferentes archivos de configuración.

appsettings.json
appsettings.Development.json
appsettings.Staging.json
appsettings.Production.json

El archivo appsettings.json contiene la configuración común para todos los ambientes, mientras que cada archivo específico sobrescribe únicamente los valores necesarios.

Por ejemplo, la cadena de conexión puede cambiar entre ambientes sin modificar el código fuente.

Development

"ConnectionStrings": {
  "DefaultConnection": "Server=localhost;Database=DevDB;"
}

Production

"ConnectionStrings": {
  "DefaultConnection": "Server=ServidorSQL;Database=Produccion;"
}

Detectar el ambiente desde el código

ASP.NET Core permite ejecutar lógica específica según el ambiente.

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

También puedes verificar otros ambientes:

app.Environment.IsStaging();

app.Environment.IsProduction();

Esto evita exponer herramientas de desarrollo en producción.

Buenas prácticas

  • Nunca almacenes contraseñas o secretos en appsettings.json.
  • Utiliza User Secrets durante el desarrollo.
  • En producción emplea servicios como Azure Key Vault, variables de entorno o gestores de secretos.
  • Mantén las mismas configuraciones entre Staging y Production, cambiando únicamente datos como conexiones o credenciales.
  • Automatiza la selección del ambiente mediante tu pipeline de CI/CD.

Configurar correctamente los ambientes Development, Staging y Production permite desarrollar aplicaciones más seguras, fáciles de mantener y mucho más confiables. Separar configuraciones evita errores durante los despliegues, protege información sensible y facilita validar cambios antes de llegar a los usuarios finales.

Implementar esta estrategia desde el inicio de un proyecto es una práctica recomendada en cualquier aplicación profesional desarrollada con ASP.NET Core y .NET.

Te puede interesar...

Deja un comentario