Construir controlador asíncrono
Tradicionalmente el flujo de una aplicación web es síncrono, es decir, hacemos una petición al servidor y nos detenemos mientras esperamos la respuesta, hasta hace unos 5 años este modelo tenía validez, sin embargo con los nuevos requerimientos y las nuevas herramientas ya necesitamos algo más dinámico.
En esta sección veremos que es un controlador asíncrono y como construirlo utilizando ASP.NET MVC.
Controladores asíncronos
Uno de los componentes más importantes de nuestras aplicaciones son los controladores, en ASP.NET MVC podemos hacer que trabajen de forma asíncrona con ello podremos evitar que los procesos se bloqueen mientras se hace alguna consulta.
Esto se da porque el servidor empieza a apilar los procesos en espera y llega un punto en que desborda el espacio que puede utilizar, con ello veremos el tan popular error 503 de servicio no disponible, para evitar esto podemos crear un controlador asíncrono, que no disminuye el tiempo que el proceso va a durar ejecutándose, pero si libera el hilo de procesamiento para que otros procesos puedan utilizarlo.
Construir un controlador asíncrono
Para que nuestro controlador sea asíncrono debemos cumplir una estructura base de sus acciones, de esta forma podremos lograr nuestro objetivo, para ello debemos seguir unas convenciones que establece el framework. Veamos que necesitamos:
Como vemos no necesitamos mucho para crear un controlador asíncrono, más que todo es elaborar la lógica y un poco seguir las convenciones para que el framework pueda determinar qué es lo que estamos construyendo en la aplicación. Las bases de la programación asíncrona en ASP.NET MVC no son nada complejas, en la segunda parte de este tutorial veremos un ejemplo más completo de cómo crear un controlador asíncrono además de otros conceptos importantes.