5.17.2011

¿Cuáles Application Blocks Utilizo en mi Arquitectura?

Cuando doy cursos o charlas respecto al diseño de arquitectura de aplicaciones, siempre insisto en la necesidad de usar componentes que nos ayuden a que nuestra arquitectura sea más estándar. Es por esta razón que siempre recomiendo el uso de los Application Blocks de Microsoft. Las razones por las cuales utilizo los AppBlocks son principalmente las siguientes:

  1. Son librerías desarrolladas por un grupo independiente de expertos al grupo que desarrolla la tecnología,  que invierte mucho tiempo analizando las nuevas tecnologías que Microsoft saca al mercado.
  2. Tiene continuidad. Quizás el principal problema de algunas librerías open source es que aunque en muchos casos las librerías cumplen con mucho éxito todo lo que uno desea de una librería para funcionalidades tales como logging y manejo de excepciones, no siempre tienen continuidad en el tiempo; es decir no salen nuevas versiones de los componentes de acuerdo a las nuevas versiones del framework y por lo tanto no se aprovechan todas las capacidades del mismo al máximo; en otras palabras, hay nuevas versiones.
  3. Hacen estrictamente lo que requiero para mis aplicaciones y aunque al principio cuesta un poco entender el concepto de cada AppBlock, una vez que se comprende es fácil utilizarlos en nuestras aplicaciones.
  4. Documentación. Una de las debilidades más grandes de muchos componentes de mucha calidad es la falta de documentación, algo que no sucede con los AppBlocks.
  5. Nuevos AppBlocks con nuevas tecnologías. Aunque esta relacionado con el punto 2, los appBlocks evolucionan conforme a la tecnología en que se encuentre el framework, por ejemplo el AppBlock de acceso a datos y el entity framework o silverlight y Prism. En resumen, salen con nuevas versiones y estas agregan nueva funcionalidad para el uso de las nuevas características de nuevos componentes dentro del framework.

Además de exponer acerca del porque uso los Application Blocks también invierto tiempo indicando cuales son los que más uso y en que capa los uso y aquí va mi lista en el siguiente diagrama:

image

Como podemos ver en la figura, yo utilizo Prism en el UI cuando aplica – usando WPF y Silverlight –, además utilizo Unity en la capa de negocios – { y me gusta reemplazarlo por ninjetic } –, también uso el data acces application block y los blocks para Logging e instrumentación. Para todas estas funcionalidades existen librerías que pueden hacer este trabajo y en algunos casos las utilizo, por ejemplo log4net o ninjetic; sin embargo, en casi todos los casos me apego a este esquema.

Etiquetas de Technorati: ,,

2 comentarios:

Hugo dijo...

Buen artículo, me parece una forma genial de Microsoft para asegurarse que se usen correctamente las tecnologías y adaptarse lo mas pronto posible cuando hay nuevos paradigmas.

Me imagino que vamos a usar estas librerías en nuestros proyectos.

Diego Rojas dijo...

Gracias por el comentario

Y Si, al menos el de exception handling