Migración de la configuración a ASP.NET Core

Por Steve Smith y Scott Addie

En el artículo anterior, empezamos a migrar un proyecto de MVC de ASP.NET a MVC de ASP.NET Core. En este artículo se migra la configuración.

Vea o descargue el código de ejemplo (cómo descargarlo)

Configuración

ASP.NET Core ya no usa los archivos Global.asax y web.config que usaron versiones anteriores de ASP.NET. En las versiones anteriores de ASP.NET, la lógica de inicio de la aplicación se colocó en un método Application_StartUp en Global.asax. Más adelante, en MVC de ASP.NET, se incluyó un archivo Startup.cs en la raíz del proyecto y se le llamó cuando se inició la aplicación. ASP.NET Core ha adoptado este enfoque completamente colocando toda la lógica de inicio en el archivo Startup.cs.

El archivo web.config también se ha reemplazado en ASP.NET Core. Ahora se puede configurar la propia configuración como parte del procedimiento de inicio de la aplicación descrito en Startup.cs. La configuración todavía puede usar archivos XML, pero normalmente los proyectos de ASP.NET Core colocarán valores de configuración en un JSarchivo con formato ACTIVADO, como appsettings.json. El sistema de configuración de ASP.NET Core también puede acceder fácilmente a variables de entorno, lo que podría proporcionar una ubicación más segura y sólida para los valores específicos del entorno. Esto es especialmente cierto para secretos, como cadenas de conexión y claves de API, que no deberían comprobarse en el control de código fuente. Consulte Configuración para obtener más información sobre la configuración de ASP.NET Core.

En este artículo, vamos a empezar con el proyecto de ASP.NET Core parcialmente migrado del artículo anterior. Para establecer la configuración, agregue el siguiente constructor y la propiedad al archivo Startup.cs ubicado en la raíz del proyecto:

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

Tenga en cuenta que en este momento el archivo Startup.cs no se compilará, ya que todavía será necesario agregar la siguiente instrucción using:

using Microsoft.Extensions.Configuration;

Agregue un archivo appsettings.json a la raíz del proyecto mediante la plantilla de elemento adecuada:

Add AppSettings JSON

Migración de opciones de configuración desde web.config

Nuestro proyecto MVC de ASP.NET incluía la cadena de conexión de base de datos necesaria en web.config, en el elemento <connectionStrings>. En nuestro proyecto de ASP.NET Core, almacenaremos esta información en el archivo appsettings.json. Abra appsettings.json y tenga en cuenta que ya incluye lo siguiente:

{
    "Data": {
        "DefaultConnection": {
            "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
        }
    }
}

En la línea resaltada mostrada anteriormente, cambie el nombre de la base de datos de _CHANGE_ME por el nombre de su base de datos.

Resumen

ASP.NET Core coloca toda la lógica de inicio de la aplicación en un único archivo, en el cual se pueden definir y configurar los servicios y dependencias necesarios. Reemplaza el archivo web.config por una característica de configuración flexible que puede aprovechar una variedad de formatos de archivo, como JSACTIVADO, así como variables de entorno.