October 6, 2009 | Filed Under Artículos, Novedades | No Comments
Por Soledad Pano y Federico Freire.
La construcción de aplicaciones web demanda cada vez más desafíos en cuanto a performance e interfaces de usuario ricas. En este artículo se presenta una solución web en donde estas premisas se cumplen haciendo uso de técnicas AJAX y servicios REST. En términos generales se trata de una aplicación que sirve páginas estáticas (o prácticamente estáticas) que mediante posteriores llamadas AJAX consultan los datos dinámicos. Este traspaso de datos se realiza mediante solicitudes HTTP con URLs tipo REST y utilizando JSON como formato de serialización, prescindiendo del protocolo SOAP. Este tipo de arquitectura aporta flexibilidad permitiendo separar los servidores web que sirven las páginas estáticas (altamente cacheables, poca carga), de los servidores de aplicación que hostean los servicios REST (también cacheables, pero en menor medida y con mayor carga de trabajo). Por otro lado, dado que la lógica de renderización ocurre en el cliente, se reduce notablemente el trabajo del lado servidor. De esta forma, además de mejorar la percepción del usuario, se reduce la carga en el servidor y mejoran los tiempos de respuesta.
El escenario planteado es el siguiente: Se tiene por un lado un servidor web que sirve el contenido “estático” que es el marco de la página (header, footer, templates) pero sin datos, de ahí que es prácticamente estático (incluso podrían ser directamente páginas HTML). Una vez que la página llega al cliente web, se solicitan y/o modifica los datos mediante uno o varios llamados AJAX hacia los servicios REST (Representational State Transfer). Los datos viajan serializados en formato JSON (JavaScript Object Notation), que es un formato liviano para el transporte y fácil de manipular mediante JavasSript para su renderizado. Los servidores de contenido pueden estar físicamente separados de los de servicio o pueden compartir también el mismo nodo según la necesidad.
Continuar leyendo REST + AJAX = Aplicaciones WEB performantes…
March 27, 2009 | Filed Under Artículos, Novedades | No Comments
Por Federico Freire y Soledad Pano.
Según el estilo REST (Representational State Transfer), la web está formada por recursos sobre los cuales se puede tomar acciones como GET, POST, PUT y DELETE. Por su parte, cada recurso se identifica unívocamente mediante una URL, como por ejemplo http://server/books/mybook/2009 . Este tipo de URL es más “linda” que una URL de la forma: http://server/books/showBook.aspx?name=myBook&edition=2009 . Los beneficios de las URLs tipo REST radican en que estas son más amigables para SEO (Search Engine Optimization) y más fácilmente “cacheables”. En este artículo se mostrará cómo implementar el uso de este tipo de URLs en una aplicación de ASP.NET utilizando la API de System.Web.Routing provista en el .Net Framework 3.5.
Continuar leyendo RESTful URLs en ASP.Net…
February 27, 2009 | Filed Under Artículos, Novedades | No Comments
Por Rodolfo Finochietti (http://weblogs.shockbyte.com.ar/rodolfof )
Diagnosticar y corregir errores en las aplicaciones siempre ha sido difícil, sobre todo cuando estos errores no tienen una causa aparente o no se pueden reproducir fácilmente. Seguramente a muchos de ustedes esta situación les resulte familiar: luego de mucho meses de desarrollo y pruebas en distintos ambientes, nuestra aplicación (que ha sido diseñada teniendo en cuenta buenas prácticas de arquitectura y ha sido sometida muchas instancias de pruebas) es puesta en producción, al tiempo (inmediatamente o después de meses o años) empieza “colgarse”, consume demasiada memoria (incluso hasta que termina abruptamente) o se vuelve lenta sin estar sometida a demasiada carga. Todo esto sin una explicación aparente y lo que es peor aun en forma aleatoria no pudiendo reproducir estos problemas en un entorno distinto al productivo. La primera reacción de la mayoría de nosotros es decir “¡no puede ser, en mi maquina funciona!”, luego del shock inicial tratamos de diagnosticar el problema en forma “artesanal”, la mayoría de las veces con poco éxito, y aplicando soluciones parciales que atacan el síntoma y no el problema. Aunque no lo crean he visto muchas instalaciones en donde la solución a casos como los que he descripto consistía en un operador monitoreando la aplicación para reiniciarla cuando detecta que esta “colgada”.
Continuar leyendo Debugging avanzado de aplicaciones cliente en .NET…