Último Momento: Enterprise Library 2.0 Libre

 Finalmente  el comité de Patterns & Practices cumplió el objetivo de proveer, tanto a arquitectos como a desarrolladores de .NET 2.0, de una biblioteca que predique con el ejemplo ("by example") las mejores prácticas de arquitectura y desarrollo de componentes

Este release no es la migración de la Enterprise Library para .NET 1.1 a la plataforma 2.0: como ya comenté oportunamente, parte de esa versión es hoy .NET 2.0!! Veamos:

  • La potencia del imprescindible Configuration Application Block está hoy implementada en el espacio de nombres System.Configuration, por ende no deberá extrañarnos no encontrar a este bloque en el release
  • El Security Application Block está presente, aunque sólo para cubrir aquella funcionalidad que no está soportada en el modelo de seguridad basado en proveedores de ASP.NET 2.0. Este modelo de seguridad está inspirado en la versión del bloque para .NET 1.1. No obstante, no provée sólo eso sino muchas otras cosas más (controles para log in, recupero de contraseñas, etc)
  • El viejo Updater Application Block, que no formó parte de la Enterprise Library sino que estaba disponible en forma individual, hoy es ClickOnce: la tecnología de distribución de clientes inteligentes (smart clients)
  • La clase DbCommandWrapper del Data Access Application Block ahora es DbCommand en ADO.NET 2.0

La arquitectura de esta nueva versión se compone de un núcleo (core) con nuevas dependencias


Interdependencias de los applications blocks

Como podemos apreciar, se incorpora una nueva facilidad que puede ser usada también por nuestras aplicaciones: el Constructor de Objetos (ObjectBuilder). Este constructor nos va a evitar escribir lógica para instanciar componentes y configurar sus propiedades o relaciones con otros componentes. Algo que en arquitectura de software se conoce como Inyección de Dependencias (Dependency Injection). Para quienes estamos en .NET pero veníamos de Spring/J2EE, hoy es un día de Paz y Gozo. Invito a conocer más de este patrón de arquitectura en el siguiente artículo de Martin Fowler, o bien en este otro de MSDN Magazine (Septiembre 2005)

Enterprise Library 2.0 tiene un compromiso primario que es mostrar con ejemplos de código la buena aplicación de mejores prácticas de arquitectura, diseño y programación para la plataforma .NET 2.0. Aquellos que quieran conocer estos detalles, favor de revisar dos webcasts

  • Un vistazo general de la biblioteca (click acá) donde se describen los bloques y las decisiones principales de diseño de los mismos. Eventualmente se puede descargar la ppt (click acá)
  • El otro webcast profundiza el engine de creación de objetos mediante inyección de dependencias (click acá). La presentación se descarga de este otro lado (click acá)

El estudio de estas prácticas se completa con los bloques en sí mismos. Los mismos se distribuyen con código fuente, pruebas unitarias, demos de uso sencillísimas y, por supuesto, la documentación completa. Para marzo el comité espera liberar unos laboratorios de estudio más complejos. Los bloques, entonces, son los siguientes

  • Caching Application Block
  • Cryptography Application Block. El culpable de la demora por la que esto no se liberó en Diciembre 2005  🙂 Lo que sí, muchísimas mejoras en su implementación dentro del motor (under the hood) en tanto que la interfaz exterior para las aplicaciones no se ve alterada
  • Data Access Application Block. Si bien cedió parte de su funcionalidad a ADO.NET 2.0, también agrega un proveedor genérico (provider) para bases visibles por ODBC u OleDb: GenericDatabase
  • Exception Handling Application Block. Recomiento complementar esta implementación con la lectura de este post: Haciendo Lugar a la Excepción
  • Logging Application Block. La implementación ahora saca partido del espacio de nombres System.Diagnostics a la vez que ofrece una arquitectura simplificada
  • Security Application Block. Como explicaba al principio, desaparece lo relacionado con autentificación y manejo de perfiles en favor de ASP.NET 2.0. Se potenció el esquema de autorizaciones con un mecanismo de caching

Para aquellos que, como yo, se sientan motivados a incorporar esta biblioteca en sus aplicaciones, tengamos en cuenta, y esto es fundamental, que si bien Enterprise Library no tiene costo comercial, no es difererente en términos de mantención del resto del código que nosotros escribamos. Esto quiere decir que Microsoft se reserva el derecho, en el futuro, de dar soporte o liberar nuevas versiones. Lamentablemente lo mismo respecto de la compatibilidad con versiones previas (backward compatibility). Aquellos que vayamos a incluir esta biblioteca en nuestros desarrollos, se nos va a pedir aceptación del ACUERDO DE LICENCIA DE USUARIO FINAL. Este acuerdo es similar a los clásicos acuerdos de Apache Group (servidor web Apache, Tomcat y otros proyectos Jakarta, etc), Java de Sun Microsystems (Java Runtime Environment), GNU Linux y otros

La biblioteca se puede descargar haciendo click aquí. Si bien no se esperan nuevos releases para el resto del año, sí se anunció que la próxima versión de la biblioteca va a incluir facilidades que enseñen las mejores prácticas de uso de tecnologías futuras como el soporte LINQ para consultas en lenguages, u otras como WinFX. Por ahora a esperar a marzo para tener los laboratorios de aprendizaje de esta versión

Esta entrada fue publicada en patterns and practices. Guarda el enlace permanente.

Una respuesta a Último Momento: Enterprise Library 2.0 Libre

  1. Alberto dijo:

    Hola mi nombre es Alberto Durand Soy desarrollador y estoy entrando en el .net quiero utilizar los bloques aplicativos de la version 2.0 de Enero 2006, pero a la hora de compilar los projectos me despliega estos errores: Error 1 Warning as Error: Invalid search path ‘C:\Archivos de programa\Microsoft Visual Studio .NET\Vc7\lib\’ specified in ‘LIB environment variable’ — ‘El sistema no puede hallar la ruta especificada. ‘ ObjectBuilderError 1 Warning as Error: Invalid search path ‘C:\Archivos de programa\Microsoft Visual Studio .NET\Vc7\lib\’ specified in ‘LIB environment variable’ — ‘El sistema no puede hallar la ruta especificada. ‘ ObjectBuilderError 1 Warning as Error: Invalid search path ‘C:\Archivos de programa\Microsoft Visual Studio .NET\Vc7\lib\’ specified in ‘LIB environment variable’ — ‘El sistema no puede hallar la ruta especificada. ‘ ObjectBuilder esto para cada proyecto de la solucion completa del enterprise library 2.0 donde puedo cambiar esta ruta o que es lo que debo de hacer, ójala y me puedas ayudar.. Saludos y felicitaciones por tu block.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s