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

Controlador de búsquedas



En la primera parte de este tutorial vimos conceptos muy importantes de la programación de aplicaciones asíncronas, adicionalmente pudimos dar un vistazo a las convenciones que debemos seguir para poder construir un controlador con estas características.

Si bien la teoría nos da una visión muy importante de lo que implica este tipo de desarrollo en ASP.NET MVC, la práctica nos dará la visión necesaria para lograr nuestros objetivos.

En esta segunda parte vamos a construir un controlador de búsquedas donde aplicaremos los conocimientos que adquirimos en la primera parte, además de ver algunos conceptos un poco más avanzados que nos ayudaran a desarrollar una lógica más acertada para la construcción de aplicaciones asíncronas.

Construir un controlador de búsquedas


Supongamos que necesitamos hacer una búsqueda un poco compleja, si esperamos que el servidor termine de procesar antes de atender otras peticiones probablemente terminemos con una aplicación muy lenta y que muere muy a menudo.

Para ello vamos a construir el controlador, veamos en la siguiente imagen el primer método o acción a construir:

asp_control_asinc_part2.1.jpg


Aquí empezamos con la construcción del método Async, este va a iniciar el proceso worker que manejará los hilos correspondientes, como vemos y siguiendo la convención no retorna nada. Luego vamos a construir la acción principal que es la que va a ejecutar los procesos que necesitamos de nuestra lógica:



Notamos que tampoco retornamos nada, ya que quien va a hacer el retorno de los resultados, es el último método que se ejecuta cuando se completa la petición:


asp_control_asinc_part2.3.jpg


Vemos entonces como aquí si ya podemos retornar el JSON correspondientes con los resultados obtenidos.

¿Cuándo debemos utilizar controladores asíncronos?


Es muy importante tener una guía de uso para los controladores asíncronos, ya que a pesar que mejoran muchas cosas, no todas las situaciones son favorables para esta forma de desarrollar aplicaciones.

Los momentos en los que no debemos utilizar controladores asíncronos los podemos ver en la siguiente lista:
  • Cuando se deben realizar operaciones simples y muy cortas.
  • Casos en los que necesitamos tener baja complejidad y no debemos pensar mucho en la eficiencia.
  • Operaciones que requieren mucho uso del CPU, ya que los procesos asíncronos pueden aumentar el consumo en vez de ayudar a reducirlo.
Ahora veremos en la próxima lista los casos cuando si debemos utilizar controladores asíncronos:
  • Cuando tenemos operaciones largas y que están causando un cuello de botella en la aplicación.
  • Cuando tenemos operaciones que utilizan de forma intensiva la red y los dispositivos de entrada y salida.
  • Cuando nuestra aplicación requiere que le demos la posibilidad al usuario de cancelar operaciones que ya están en curso.
Si seguimos estas listas lo más seguro es que implementemos nuestros controladores asíncronos de la mejor forma posible, aunque es importante también seguir nuestro instinto y nuestra lógica, ya que esto son solo recomendaciones generales.

Como pudimos ver el concepto de aplicaciones asíncronas se ve más complejo de lo que realmente es, con la ayuda de ASP.NET y sus herramientas podemos lograr construir aplicaciones verdaderamente modernas y evitar en gran medida los problemas de la arquitectura cliente servidor.

¿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