🔧🖥️ Domina la Configuración en .NET Como un Pro

🔧🖥️ Domina la Configuración en .NET Como un Pro

🛠️ Optimizando tu Aplicación .NET: 💡 Sacando el Máximo Provecho de la Configuración 🚀

Introducción

Hoy, quiero hablarles sobre una herramienta no tan oculta en el ecosistema de .NET: su sistema de configuración. Este sistema no solo simplifica el desarrollo de aplicaciones robustas y escalables sino que también facilita la adaptabilidad a diferentes entornos, desde desarrollo hasta producción, todo esto bajo la infraestructura de Azure.

¿Qué es este servicio?

El sistema de configuración en .NET es un marco poderoso y flexible diseñado para gestionar las configuraciones de aplicaciones de una manera centralizada y segura. Permite a los desarrolladores y arquitectos de soluciones acceder a la configuración desde múltiples fuentes como archivos JSON, variables de entorno, Azure Key Vault, y más, ofreciendo así un alto nivel de personalización y control.

¿Qué cubrirá este post?

A lo largo de este post, abordaremos temas clave como:

  • La estructura básica del sistema de configuración en .NET.

  • Cómo acceder y manipular diferentes fuentes de configuración.

  • Integración con servicios de Azure para un manejo seguro y eficiente de las configuraciones.

¿Por qué es importante para los arquitectos de soluciones?

Para los arquitectos de soluciones, entender y aplicar eficazmente el sistema de configuración en .NET es crucial. Permite diseñar aplicaciones que son fáciles de adaptar y mantener, especialmente en entornos complejos como los ofrecidos por Azure. La habilidad para gestionar configuraciones de manera dinámica y segura facilita la implementación de cambios y la escalabilidad de aplicaciones sin comprometer la seguridad o la integridad del sistema.

¿Qué problemas puede resolver?

El sistema de configuración en .NET aborda varios desafíos críticos, incluyendo:

  • Gestión de configuraciones en múltiples entornos y fases de desarrollo.

  • Seguridad y cifrado de datos sensibles, utilizando herramientas como Azure Key Vault.

  • Reducción de la duplicación de código y aumento de la reutilización a través de la centralización de la configuración.

  • Facilidad de mantenimiento y actualización de configuraciones sin necesidad de desplegar nuevamente la aplicación.

Ejercicio en Práctica

En este ejercicio vamos a ver como usar las distintas maneras en que podemos usar la configuración en un proyecto .Net

Configuracion sencilla

  1. Usaremos un proyecto de consola de .Net 7 y le instalaremos el siguiente paquete Microsoft.Extensions.Configuration

image.png

  1. Luego en nuestro proyecto crearemos una variable settings
var settings = new Dictionary<string, string>
{
    ["variable1"] = "Hola mundo",
    ["variable2"] = "adios mundo"
};
  1. Llamaremos al **ConfigurationBuilder **, esto se utiliza para crear ajustes de configuración basados en clave/valor para su uso en nuestra aplicación. le pasamos como parametro la variable **settings **creada en el punto anterior e imprimimos por pantalla los valores
var builder = new ConfigurationBuilder()
    .AddInMemoryCollection(settings)
    .Build();

Console.WriteLine(builder["variable1"]);
Console.WriteLine(builder["variable2"]);

image.png

Leyendo de un archivo json

  1. Para este ejemplo crearemos un archivo json con lo siguiente:
{
  "variable1": "Hola mundo desde json",
  "variable2": "adios mundo desde json"
}

e instalamos el siguiente nuget package

image.png

  1. En nuestro proyecto agregaremos la siguiente linea para leer el archivo json
var builderJson = new ConfigurationBuilder()
    .AddInMemoryCollection(settings)
    .AddJsonFile("appsettings.json"); //<------

var config = builderJson.Build();

Console.WriteLine(config["variable1"]);
Console.WriteLine(config["variable2"]);
  1. Pero antes debemos cambiar una propiedad en el archivo json para que pueda ser leido

image.png

image.png

  1. Al ejecutar la aplicación vemos la siguiente salida

image.png

Utilizando Variables de Entorno

  1. En el proyecto debemos instalar este nuget package

image.png

  1. En las propiedades del proyecto abrimos la siguiente opción (Visual Studio 2022):

image.png

  1. y en esta opción agregamos las variables de entorno

image.png

  1. En nuestro proyecto agregamos el siguiente código donde usaremos ahora el método AddEnvironmentVariables para leer las variables de entorno.
var builderJson = new ConfigurationBuilder()
    .AddInMemoryCollection(settings)
    .AddEnvironmentVariables();

var config = builderJson.Build();

Console.WriteLine(config["variable1"]);
Console.WriteLine(config["variable2"]);
  1. Al ejecutar el proyecto vemos la siguiente salida

image.png

Consideraciones finales

Dominar el sistema de configuración en .NET puede transformar la forma en que desarrollamos y desplegamos aplicaciones en Azure, haciéndolas más flexibles, seguras y fáciles de mantener.

A través de este post, espero haber iluminado el camino para que aprovechen al máximo esta poderosa herramienta en sus proyectos.

Les invito a experimentar y jugar con las posibilidades que ofrece, siempre buscando implementar las mejores prácticas y mantener la seguridad como prioridad.