Actualmente estoy trabajando en un proyecto muy interesante, se trata de una conjunto de Portales basados en SharePoint orientados a ofrecer servicios de Formación a los clientes de la empresa élogos.
Hace poco hemos estado reunidos para revisar algunos bloques de arquitectura que se deberían de contemplar en la solución.
Una de las piezas que estamos contemplando consiste en una infraestructura en la que es posible que el cliente(portal) consuma objetos de negocio (interface) cuya implementación se conectar por medio de la configuración.
Otra posibilidad es que la aplicación pueda “conectar” dinámicamente y en tiempo de ejecución distintas implementaciones según la configuración o condiciones del contexto.
Esto tiene similitud con el modelo Proveedor que usa ASP.NET. Un proveedor es una modulo que proporciona un determinado servicio bajo un interfaces uniforme.
Los proveedores permiten por ejemplo, en una aplicación ASP.NET cambiar un repositorio de estado de sesión indicando el proveedor(SessionState Provider) concreto en el fichero de configuración, de esta forma si decidimos cambiar o incluso extender la implementación de donde y como se almacena el estado de la sesión no tendremos que hacer nada con la aplicación que consume el servicio.
El uso de proveedores y de implementaciones “enchufables”(plugin) permiten obtener muchas más flexibilidad para construir aplicaciones que consumen servicios heterogéneas y en los cuales los orígenes de estos servicios pueden cambiar con muchas rapidez.
En este contexto he estado investigando o infraestructuras mas genéricas en .net que permiten hacer uso de los patrones “Inversion of Control Containers” y “Dependency Injection” entre ellos:
- Castle Windsor : Pieza que forma parte(independiente) del proyecto OpenSouce Castle. Es un conjunto de bloques de arquitectura para ampliaciones empresariales .NET.

- Unity Application Block (Unity): Esta pieza se ha incorporado en el framework empresarial de MS(Enterprise Library 4.0), se puede descargar e instalar por separado(sin necesidad de usar las otras piezas de la Enterprise Library), acompañada de una documentación muy extensa.
.png)
Otro proyecto que contiene bloques de arquitectura es http://www.springframework.net, es bastante interesante.

Más referencias útiles para profundizar sobre este tema:
Una reflexión: Para madurar una arquitectura es muy interesante revisar como lo resuelven determinados proyectos como los aquí mencionados, e incluso decidir la adopción de uno de estos framework.

[...] 18, 2008 por jdieguez Como contaba en el anterior post estoy revisando las distintas piezas de arquitectura que pueden componer marco de trabajo. En [...]
[...] contaba en el anterior post estoy revisando las distintas piezas de arquitectura que pueden componer marco de trabajo. En [...]
[...] contaba en el anterior post estoy revisando las distintas piezas de arquitectura que pueden componer marco de trabajo. En [...]
[...] su día ya comente que en .NET existía varios frameworks que implementaban el patrón ID, entre todos creo que tiene mucho sentido revisar las posibilidades del Microsoft Unity(actualmente [...]
[...] su día ya comente que en .NET existía varios frameworks que implementaban el patrón ID, entre todos creo que tiene mucho sentido revisar las posibilidades del Microsoft Unity(actualmente [...]