Accediendo a Configuraciones Durante la Configuración en ASP.NET Core / .NET 8
ASP.NET Core es un marco web multiplataforma de código abierto de Microsoft que permite a los desarrolladores crear aplicaciones web modernas y aplicaciones nativas de la nube de manera eficiente. Con la última versión de .NET, ASP.NET Core continúa proporcionando una plataforma liviana, segura y flexible para desarrollar aplicaciones web que pueden ejecutarse en Windows, Linux y macOS.
En este artículo, vamos a profundizar en cómo acceder a configuraciones durante la configuración en ASP.NET Core, siguiendo el video de entrenamiento de 10 minutos de Tim Corey. Tim demuestra cómo los desarrolladores pueden extraer valores de configuración en program.cs antes de que la inyección de dependencias esté completamente configurada, lo cual es una técnica esencial para crear aplicaciones web flexibles y mantenibles.
Por qué el acceso temprano a la configuración importa
Tim Corey comienza destacando la importancia de las configuraciones de aplicaciones en ASP.NET Core. Según Tim, appsettings.json es un "gran lugar para almacenar configuración" porque permite a los desarrolladores cambiar valores sin recompilar o redistribuir aplicaciones.
En el desarrollo web, es común depender de configuraciones para servicios, como configurar URLs para APIs o ajustar parámetros específicos del entorno. Normalmente, en una aplicación web .NET Core, los desarrolladores acceden a la configuración a través de la inyección de dependencias:
@inject IConfiguration config
Sin embargo, Tim señala que a veces necesitas acceso a estos valores de configuración durante la configuración, por ejemplo, al configurar clientes HTTP u otros servicios en program.cs. Hacerlo asegura que tus aplicaciones permanezcan flexibles y adaptables a medida que se mueven a través de diferentes entornos como desarrollo, implementación o producción.
Configuración de una aplicación Blazor mínima
Para demostrarlo, Tim crea una aplicación simple de Blazor, desactivando la interactividad para centrarse completamente en program.cs. Él enfatiza que la arquitectura de ASP.NET Core te permite separar la configuración del código, haciendo más fácil gestionar aplicaciones web y proyectos nativos de la nube.
Este enfoque también se alinea con la naturaleza multiplataforma de la plataforma .NET, ya que la misma lógica de configuración funciona en Windows, Linux y macOS sin modificaciones.
Configurando un cliente HTTP usando configuraciones de aplicaciones
Tim nos guía a través de un escenario donde un cliente HTTP es registrado en program.cs:
builder.Services.AddHttpClient("LocalAPI", client =>
{
client.BaseAddress = new Uri("https://localhost:7654");
});
Aunque esto funciona, Tim explica que no es ideal codificar de manera fija la URL. Si el punto de enlace API cambia, los desarrolladores deben actualizar el código y crear una solicitud de extracción para el despliegue. En su lugar, recomienda almacenar el valor en appsettings.json:
{
"LocalAPI": "https://localapi.fromconfig"
}
Esto asegura que el marco extraiga la configuración dinámicamente, evitando recompilación y reduciendo errores durante el despliegue. También se alinea con las mejores prácticas para aplicaciones web seguras y mantenibles.
Accediendo a configuraciones en Program.cs
Tim demuestra cómo extraer valores de configuración antes de la inyección de dependencias:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");
Puntos clave que Tim destaca:
-
builder.Configuration está disponible antes de builder.Build().
-
Los valores pueden venir de appsettings.json, variables de entorno, secretos de usuario, o incluso Azure Key Vault.
- Esto te permite configurar servicios, registros u otros componentes del marco web dinámicamente.
Tim establece un punto de quiebre para verificar que la URL de LocalAPI se esté recuperando correctamente. Él nota que este método funciona en todas las plataformas soportadas, haciéndolo ideal para el desarrollo multiplataforma.
Manejando configuraciones faltantes
Tim aborda escenarios donde una clave de configuración puede estar faltando o ser nula. Él muestra que puedes proporcionar un valor predeterminado usando GetValue:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
Esto asegura que tus aplicaciones estén listas para ejecutarse incluso si la configuración no está establecida, mejorando el manejo de errores y la productividad del desarrollador. También reduce la probabilidad de problemas en tiempo de ejecución en despliegues en la nube o en diferentes plataformas.
Beneficios del acceso temprano a la configuración
Tim describe varias ventajas de extraer configuraciones durante la configuración:
-
Configuración dinámica: Servicios como HttpClient pueden usar puntos de acceso específicos del entorno.
-
Evitar recompilación: Cambiar URLs u otras configuraciones ya no requiere cambiar el código.
-
Registro y servicios flexibles: Configure registradores u otros servicios del marco web utilizando valores de configuración.
- Admite múltiples fuentes: La configuración puede provenir de appsettings.json, variables de entorno, secretos de usuario o bóvedas de claves en la nube.
Él enfatiza que este enfoque mantiene las aplicaciones ligeras y mantenibles mientras se aprovecha al máximo el marco ASP.NET Core y la plataforma .NET.
Ejecutar y probar la aplicación (6:03–7:36)
Tim demuestra cómo limpiar el código y ejecutar la aplicación. Muestra que la URL de LocalAPI se extrae de la configuración o vuelve al valor predeterminado:
var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");
Esta configuración flexible permite a los desarrolladores seguir construyendo aplicaciones web sin preocuparse por URLs codificadas o solicitudes de extracción repetidas para cambios menores. También asegura que los despliegues multiplataforma en Linux, Windows, o macOS sean sin problemas.
Conclusión
Tim Corey concluye destacando la simplicidad y eficiencia de acceder a la configuración durante la configuración en ASP.NET Core / .NET 8. Usando:
builder.Configuration.GetValue()
los desarrolladores pueden:
-
Configurar servicios dinámicamente
-
Evitar códigos duros de valores en el marco
-
Soportar múltiples entornos y plataformas
- Mejorar la productividad del desarrollador y el manejo de errores
Esta técnica es esencial para crear aplicaciones web seguras, mantenibles y listas para la nube. La demostración práctica de Tim destaca cómo incluso una aplicación ASP.NET Core liviana y multiplataforma puede ser robusta, flexible y lista para el desarrollo web moderno.
El video de Tim Corey es de obligada visualización para desarrolladores que desean dominar la gestión de configuraciones en ASP.NET Core. Siguiendo sus pasos, puede asegurarse de que sus aplicaciones sean flexibles, mantenibles y estén listas para el despliegue multiplataforma, entornos de nube y arquitectura web moderna.
