Cargando



Controladores asíncronos en ASP.NET MVC

En este tutorial veremos todo acerca de los controladores asíncronos en ASP.NET MVC.



ago 15 2014 16:53
Avanzado
ago 19 2014 09:11

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.

Aplicación asíncrona
Una aplicación asíncrona es aquella que nos permite realizar varias actividades que no se estorban entre si y cada una consulta una parte diferente contra el servidor, con ello mientras se guarda un documento podemos consultar otro, sin necesidad de esperar una respuesta, un ejemplo de este tipo de aplicaciones es Gmail, donde mientras se envía un mail podemos ver la bandeja de entrada.


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.

asp_control_asinc_part1.jpg


Bloqueo de hilo
A pesar que la mayoría de las veces este bloqueo es tan pequeño que da la sensación que se hacen varias cosas al mismo tiempo, hay ocasiones en las cuales debemos preparar un proceso mucho más pesado y bloquearía el hilo de trabajo de tal forma que ocurriría la inanición de procesos, es decir, procesos que esperan por el hilo tanto tiempo que mueren.


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:

Acción asíncrona
Debemos crear una acción dentro de nuestro controlador que tenga la palabra Async en su nombre así por convención ASP.NET MVC sabrá cuál es el proceso asíncrono. Un ejemplo puede ser BuscarLibrosAsync, adicionalmente esta acción o método debe retornar void.

Acción completado
Luego debemos crear una acción que podamos llamar una vez el proceso asíncrono haya sido finalizado, para ello debemos crear una acción que pueda manejar el retorno del ActionResult, para ello debemos crear un método con la palabra Completed en su nombre, como por ejemplo: BuscarLibrosCompleted, con ello ya tendremos los elementos básicos necesarios.


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.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X