Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Appsettings con Environment en .NET Core

Appsettings con Environment en .NET Core

Ha llegado el momento de desplegar nuestra aplicación ASP.NET Core en los entornos de nuestro cliente. Toca pensar cómo vamos a parametrizar en cada entorno los valores adecuados, para que el contexto de la aplicación sea la del entorno en la que se está ejecutando.

Si no os habéis dado cuenta, en .NET Core no tenemos, por defecto, web.config y aparece un fichero JSON llamada appsettings.

¿Cómo lo preparamos para el despliegue en Pre-Producción o en Producción?

Lo primero es asimilar que nuestra aplicación .NET Core podrá hospedarse de diferentes formas:

  • Azure App Service
  • IIS
  • Windows Service
  • Linux con un Nginx o Apache
  • Docker

Ahora vamos a por el Appsettings.json, un fichero muy simple que nos permite establecer las variables de ejecución de nuestra aplicación y con el que podemos elegir si queremos un único fichero o tener un fichero por entorno, por ejemplo: appsettings.Development.json, appsettings.Production.json, appsettings.Staging.json, appsettings.XXX.json.

Con esta nomenclatura de entorno, podemos configurar el WebHost de nuestra aplicación para que lea las variables de contexto del fichero adecuado a cada entorno, con el siguiente fragmento de código:

ASP.NET Core carga la variable ASPNETCORE_ENVIRONMENT cuando la aplicación se inicia, y guarda el valor de esa variable en la propiedad EnvironmentName del objeto IHostingEnvironment, que por defecto tiene el valor «Production».

¿Cómo configurar esa variable en el entorno donde hospedamos nuestra aplicación?

Aquí tenemos que tener en cuenta el host, ya que el procedimiento no es el mismo para Azure, IIS o Linux.

Azure App Service

En Azure App Service podemos configurar una settings con la clave ASPNETCORE_ENVIRONMENT y el valor correspondiente al entorno, por ejemplo, Staging.

IIS o Windows

Aquí tenemos varias opciones:

  • Configurar la variable en la consola donde estamos ejecutando nuestra aplicación

  • Configurar la variable a nivel de servidor, en las «Environment Variables» del System Properties.

  • En el fichero web.config que se genera cuando publicamos en el IIS

Linux

En Linux podemos exportar la variable o crear un perfil del aplicación bash con el export correspondiente

export ASPNETCORE_ENVIRONMENT=Development

Por supuesto, no es el único método, también podemos utilizar alguna tarea de transformación de las variables en la release de Visual Studio Team System y desplegar automáticamente con los valores adecuados a cada entorno.

mm

Sobre Alberto Diaz Martin

Alberto Diaz cuenta con más de 15 años de experiencia en la Industria IT, todos ellos trabajando con tecnologías Microsoft. Actualmente, es Chief Technology Innovation Officer en ENCAMINA, liderando el desarrollo de software con tecnología Microsoft, y miembro del equipo de Dirección. Para la comunidad, trabaja como organizador y speaker de las conferencias más relevantes del mundo Microsoft en España, en las cuales es uno de los referentes en SharePoint, Office 365 y Azure. Autor de diversos libros y artículos en revistas profesionales y blogs, en 2013 empezó a formar parte del equipo de Dirección de CompartiMOSS, una revista digital sobre tecnologías Microsoft. Desde 2011 ha sido nombrado Microsoft MVP, reconocimiento que ha renovado por séptimo año consecutivo. Se define como un geek, amante de los smartphones y desarrollador. Fundador de TenerifeDev (www.tenerifedev.com), un grupo de usuarios de .NET en Tenerife, y coordinador de SUGES (Grupo de Usuarios de SharePoint de España, www.suges.es)
Esta entrada ha sido publicada en .NET y etiquetada como , , . Enlace permanente .
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores