Migración de la configuración a ASP.NET Core
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 archivo con formato JSON, 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.
Advertencia
En este artículo se usa una base de datos local que no requiere que el usuario se autentique. Las aplicaciones de producción deben usar el flujo de autenticación más seguro disponible. Para obtener más información sobre la autenticación para aplicaciones de prueba y producción implementadas, consulta Flujos de autenticación seguros.
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:
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. Sustituye el archivo web.config por una característica de configuración flexible que puede sacar provecho de diversos formatos de archivo, como JSON, así como variables de entorno.