Arquitectura SOA con Tecnología Microsoft. Buenas prácticas y diseño de aplicaciones empresariales

Portada libro Arquitectura SOA con tecnología Microsoft


Con el trajín de estos últimos días casi se me olvida comentar en el blog que, hace dos semanas, hemos sacado al mercado un nuevo libro que pienso que será de gran interés para todos, porque trata un tema en el que flojean muchos los programadores empresariales: las arquitecturas SOA.


Está escrito por César de la Torre, ex-MVP y actualmente Architect Evangelist de Microsoft, y Roberto González, MVP de Biztalk Server. En fin toda una garantía. El prólogo es de José Murillo, responsable de programas técnicos para Partners de Microsoft.


Es realmente difícil localizar un libro en español que sea introductorio y global sobre SOA y que, al mismo tiempo, sea un libro práctico. Esta obra además enseña con ejemplos cómo desarrollar servicios tanto básicos como avanzados y propone recomendaciones de diseño, patrones y mejores prácticas. En definitiva, se pretende ofrecer una ayuda útil y sencilla para quien quiere empezar en las aplicaciones empresariales:




  • Se ofrece primero una introducción global de SOA y el desarrollo distribuido.


  • A continuación se enseña cómo implementar y consumir servicios web básicos .NET (Servicios Web ASMX). Posteriormente investigamos algunos aspectos más avanzados de los servicios web básicos para seguir con WCF (Windows Communication Foundation), desde sus conceptos básicos hasta aspectos avanzados, seguridad, e incluso un capítulo específico de WCF LOB SDK.


  • La parte final del libro está orientada a las mejores prácticas, recomendaciones y patrones de desarrollo en arquitecturas orientadas a servicios. Se trata de técnicas y consejos que los autores han aprendido a lo largo de años y que además están en muchos casos definidas y contrastadas por la comunidad de desarrolladores. Estas recomendaciones finales y patrones son muy útiles a la hora de tener que implementar un proyecto real.


  • Finalmente y como colofón, incluye una breve introducción al concepto de ESB (Enterprise Service Bus), muy importante en grandes implantaciones SOA en empresas con cierto volumen, y donde se quiere tener una composición de servicios homogénea y bien estructurada.

Un libro indispensable.


En la página del libro puedes descargarte el índice detallado así como parte del primer capítulo.


Además, si te interesa especialmente el desarrollo empresarial, hemo sincluido este nuevo libro junto con el de Introducción a Windows communication Foundation y el de Modelado de procesos de negocio con Workflow Foundation, en un Pack de Desarrollo Empresarial que incluye los tres libros ¡por sólo 60 euros!

Permitir la cancelación de peticiones asíncronas AJAX

Una de las ventajas de AJAX, aparte de la posibilidad de simular interfaces de usuario tradicionales de una sola capa, es que sirve para lanzar desde el cliente tareas pesadas en el servidor mientras permitimos seguir trabajando a los usuarios en e la lado cliente (navegador). Pero ¿qué pasa si una tarea tarda demasiado y queremos permitir que nuestros usuarios la cancelen cuando quieran sin tener que esperar a que terminen?


ASP.NET AJAX en sus extensiones de JavaScript contempla esta posibilidad de manera sencilla y nos proporciona una forma de conseguirlo con muy poco código.


Por ejemplo, arrastra en un formulario Web un ScriptManager y un UpdatePanel. Dentro de éste último coloca una etiqueta y un botón. En el manejador del evento de pulsación del botón detén el hilo de ejecución durante unos segundos para simular una tarea que tarda mucho tiempo en ejecutarse y despues pon algo en la etiqueta para manifestar que se ha terminado la operación. Finalmente añade un control UpdateProgress para mostrar un gráfico animado mientras se está esperando a que regrese la llamada asíncrona originada en el UpdatePanel. El resultado se parecerá a esto:



Además en esta imagen he colocado una simple etiqueta <A> de enlace que, al ser pulsada, servirá para cancelar la operación. ¿Cómo lo conseguimos?


Muy sencillo: definimos este método de JavaScript:



El truco está en obtener una referencia a la actual instancia del objeto PageRequestManager definido por las extensiones de cliente de ASP.NET AJAX. Éste es el que encapsula la funcionalidad del objeto XmlHttpRequest, en el que se basan las peticiones AJAX. Dicha clase posee un método llamado abortPostBack() que sirve para lo que su nombre indica: cancelar una petición de PostBack hecha con esta clase. Además el objeto mantiene un estado para indicar si se encuentra actualmente en medio de una operación de llamada asíncrona, por lo que podemos comprobarlo antes de cancelar algo que no existe, como se ve en el código.


Ahora lo único que queda es, en el evento onclick del enlace, llamar al método anterior, así:


<a href=»#» onclick=»return CancelarAjax();»>Cancelar operación</a>


¡Listo!


En este archivo tienes el ejemplo descrito por si quieres reproducirlo en tu equipo.