Configurando una aplicación ASP.NET Core

Configurando una aplicación ASP.NET Core

🛠️ Configura Tu Aplicación ASP.NET Core Como un Profesional: Guía Paso a Paso 🌐

Introducción

Hoy, nos sumergiremos en cómo Azure App Service no solo simplifica nuestras vidas como arquitectos de soluciones sino que también potencia nuestras aplicaciones ASP.NET Core para escalar y evolucionar sin límites. Prepárate para descubrir cómo este servicio puede ser el motor detrás de tu próxima gran solución.

¿Qué es este servicio?

Azure App Service es un servicio de computación en la nube de PaaS (Plataforma como Servicio) que permite a los desarrolladores construir, desplegar y escalar aplicaciones web y APIs rápidamente. Con soporte integral para ASP.NET Core, ofrece capacidades automáticas de escalado, balanceo de carga, y gestión de parches, todo mientras provee un entorno seguro y de alta disponibilidad para tus aplicaciones.

¿Qué cubrirá este post?

  • Introducción a Azure App Service y su compatibilidad con ASP.NET Core.

  • Pasos básicos para desplegar tu primera aplicación ASP.NET Core en Azure App Service.

  • Ventajas de utilizar Azure App Service para tus proyectos.

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

En el mundo de la arquitectura de soluciones en la nube, la eficiencia y la escalabilidad son reyes. Azure App Service se destaca al ofrecer una plataforma robusta y flexible, permitiendo a los arquitectos de soluciones centrarse en diseñar y mejorar la arquitectura de sus aplicaciones sin preocuparse por la infraestructura subyacente. Esto significa despliegues más rápidos, mantenimiento simplificado y, sobre todo, la capacidad de escalar servicios de acuerdo con la demanda.

¿Qué problemas puede resolver?

Azure App Service aborda varios desafíos críticos:

  • Gestión de Infraestructura: Elimina la necesidad de gestionar servidores, permitiéndote centrarte en el desarrollo.

  • Escalabilidad: Escala tu aplicación automáticamente sin intervención manual.

  • Disponibilidad y Resiliencia: Asegura que tu aplicación esté siempre disponible con alta disponibilidad y estrategias de recuperación ante desastres.

  • Seguridad: Ofrece integraciones de seguridad robustas para proteger tu aplicación contra amenazas.

Ejercicio en Práctica

En este ejercicio vamos a crear una aplicación Asp.Net y vamos a ver las maneras en que podemos inyectar las configuraciones en el proyecto.

Inyectar ajustes de configuración simples

  1. Creamos un proyecto Asp.Net simple. e instalamos el siguiente paquete

image.png

image.png

  1. Luego actualizamos el archivo appsettings.json y le agregamos las siguiente claves:
  "variable1": "Hola desde appsettings.json", 
  "variable2": false,
  "variable3": 123

el archivo quedaría así

image.png

  1. En el controlador del archivo Index, vamos a inyectar IConfiguration
 private readonly IConfiguration _configuration;

        public IndexModel(IConfiguration configuration)
        {
            _configuration = configuration;
        }
  1. luego en el método OnGet, usamos la variable creada **_configuration **y le pasamos el nombre de la variable creada en el appsettings.json
public void OnGet()
        {
            ViewData["variable1"] = _configuration["variable1"];
            ViewData["variable2"] = _configuration["variable2"];
            ViewData["variable3"] = _configuration["variable3"];
        }
  1. luego en la vista mostramos el valor de **ViewData **para los 3 valores
<div class="text-center">
    <h1>@ViewData["Title"]</h1>
    <h3 class="display-4">@ViewData["variable1"]</h3>
    <hr />
    <h3 class="display-4">@ViewData["variable2"]</h3>
    <hr />
    <h3 class="display-4">@ViewData["variable3"]</h3>
</div>

al ejecutar el proyecto nos mostraría los valores que están en el archivo appsettings.json

image.png

Configuración específica del entorno

También podemos tener diferentes configuraciones para distintos entornos, en este ejercicio vamos a agregar diferentes configuraciones para el ambiente de Desarrollo y Producción y veremos la diferencia

  1. vemos que el archivo appsettings, tiene un archivo asociado para el entorno de desarrollo

image.png

  1. actualizamos ese archivo y le vamos a agregar la siguiente configuración
  "variable1": "Hola desde appsettings.json DEVELOPMENT",
  "variable2": false,
  "variable3": 567

quedaría así

image.png

  1. Validamos el ambiente en el cual esta configurado el proyecto, para ello

  2. click derecho en el proyecto

  3. luego en propiedades

  4. vamos a la opcion Debug

  5. y vemos la opcion "Environment Variables"

image.png

  1. ejecutamos el proyecto y vemos los valores para el ambiente de desarrollo

image.png

  1. Cambiamos el ambiente a producción y ejecutamos el proyecto otra vez

image.png

image.png

Uso de subsecciones de configuración

En este ejercicio vamos a aprender como hacer secciones en el archivo json para agrupar las configuraciones y luego poder leerlas en el proyecto .NET

  1. Actualizamos el archivo json y actualizamos las configuraciones
  "Variables": {
    "variable1": "Hola desde appsettings.json DEVELOPMENT",
    "variable2": true,
    "variable3": 50
  }

image.png

  1. La manera de leer es la misma, solo que primero va el nombre de la sección seguido de dos puntos y luego el nombre de la clave, ejemplo "NombreSeccion : NombreClave"
public void OnGet(){
  ViewData["variable1"] = _configuration["Variables:variable1"];
  ViewData["variable2"] = _configuration["Variables:variable2"];
  ViewData["variable3"] = _configuration["Variables:variable3"];
}
  1. Ejecutamos el proyecto y luego vemos los valores

image.png

Uso de una configuración fuertemente tipada

En este ejercicio vamos a crear una clase que tendrá las propiedades de una sección y declararemos el tipo de valor para evitar errores en la configuracion

  1. Para este ejemplo crearemos una Clase llamada AppConfiguration, y le crearemos las siguientes propiedades
 public class AppConfiguration
    {
        public string? variable1 { get; set; }
        public bool variable2 { get; set; }
        public int variable3 { get; set; }
    }
  1. En el archivo Program tendremos que usar el siguiente código para poder leer las configuraciones, le pasamos como parámetro el nombre de la sección a leer
builder.Services.Configure<AppConfiguration>
        (builder.Configuration.GetSection("Variables"));
  1. En el controlador crearemos un objeto de la clase AppConfiguration
 private readonly AppConfiguration _appConfiguration;
  1. En el constructor le inyectamos los valores leidos del archivo de configuracion
public IndexModel(IOptions<AppConfiguration> appConfiguration){
  _appConfiguration = appConfiguration.Value;
}
  1. En el metodo seteamos los valores porque ya el objeto _appConfiguration tiene valores en las propiedades variable1,variable2 y variable3
        public void OnGet()
        {
            ViewData["variable1"] = _appConfiguration.variable1;
            ViewData["variable2"] = _appConfiguration.variable2;
            ViewData["variable3"] = _appConfiguration.variable3;
        }
  1. ejecutamos la aplicación y vemos los valores leídos

image.png

Consideraciones finales

Azure App Service es más que una plataforma de despliegue; es una herramienta poderosa en el arsenal de un arquitecto de soluciones. Con su soporte para ASP.NET Core, ofrece una vía rápida y eficiente para llevar tus aplicaciones al siguiente nivel, asegurando que estén preparadas para escalar y adaptarse a las necesidades futuras.

Espero que este post te haya proporcionado una visión clara de cómo Azure App Service puede transformar tu enfoque para desplegar aplicaciones ASP.NET Core.