La “Asincronía” y su evolución en pro de la UX - WarNov Developer Evangelist - Site Home - MSDN Blogs

La “Asincronía” y su evolución en pro de la UX

La “Asincronía” y su evolución en pro de la UX

Rate This
  • Comments 2

Hace ya varios años, los primeros servicios Web que usábamos eran síncronos. Hacíamos un llamado a la web y nos quedábamos esperando muy pacientemente a que el servidor nos respondiera y la respuesta bajara.

Para nosotros era suficiente con obtener la respuesta!

Nos nos importaba cuánto se demorara... el hecho que después de un tiempo llegara esa información que necesitábamos ya era suficiente para sentir la magia de la web!!! El resto era irrelevante! Aún el hecho de que la interfaz de usuario se congelara no nos importaba. Finalmente, teníamos nuestro mensaje... valía la pena esperar.

Pero humanos somos y cada vez queremos más. Cada vez queremos mejores opciones y mejores comportamientos. Más comodidad!!!
Nos comenzó a parecer un fastidio que la interfaz se congelara y que ni siquiera pudiéramos mover la ventana de la aplicación... De ahí en adelante comenzó la evolución que hoy en .net se conoce como: async.

En este video daremos un recorrido por las soluciones que se le han dado a este problema a través del tiempo. Desde los simples llamados síncronos a WebServices por ejemplo, pasando por el manejo de threads distintos para la comunicación junto con el uso de Invoke para evitar desactivar el CheckForIllegalCrossThreadCalls de los forms, siguiendo con el versátil BackgroundWorker y luego explorando los clientes web asíncronos obtenidos con WebClient en Silverlight y Windows Phone 7 y HttpClient en Windows 8, que al implementar el Framework 4.5 nos ofrece el maravilloso async que nos abstrae de todas esas operaciones que algún día fueron un dolor de cabeza para nosotros:

Puntos Clave:

  1. async ha sido creado solo para manejar operaciones que al tardar, podrían bloquear la interfaz de usuario. En ningún momento ha de ser usado para ejecutar tareas en paralelo o procesos en Background.
  2. En WP7 aún no hay soporte para async. Así que hay que usar un WebClient y ejecutar sus métodos asíncronos asociando un manejador al evento de completitud del request. Esto es similar a las llamadas asíncronas a proxies de servicios WSDL o WCF tradicionales.
  3. La forma de manejar async difiere levemente desde WindowsRT (metro style) al resto del framework. Cuando no estamos en WindowsRT se usa el método que referencia a TaskAsync. Por ejemplo en vez de DownloadStringAsync, en un WebClient, llamamos el método DownloadStringTaskAsync
    Leave a Comment
    • Please add 1 and 6 and type the answer here:
    • Post
    • Excelente artículo. Como aporte sería estupendo agregar el Visual Studio Async CTP que aunque es algo limitada, funciona en WP7.5 y Silverlight 5 y permite implementar algunas funciones de estas nuevas y excelentes APIs.

      www.microsoft.com/.../details.aspx

      Saludos desde Nicaragua.

    • Gracias @yesez por tu aporte Complementa muy bien el artículo. Saludos hasta Nicaragua!

    Page 1 of 1 (2 items)