Usando convenciones para mejorar IHandlerSelector
21 septiembre 2011 | , ,

Hace poco puse un ejemplo de cómo utilizar handlers selectors para controlar los módulos activos en una aplicación y terminaba diciendo esto: El ejemplo de IHandlerSelector que hemos visto es muy simple y adolece de un problema: falta de flexibilidad. Si mañana quiero añadir otro servicio dependiende de algún parámetro, tengo que tocar el IHandlerSelector....

Seguir leyendo

Aplicaciones modulares con Castle Windsor: IHandlerSelector
18 septiembre 2011 | , , | 2 comentarios

Hay veces en las que una aplicacio tiene módulos que se pueden activar o desactivar, de manera que se habiliten o no ciertas características. Existen muchas formas de implementar esto, pero si estamos usando Castle Windsor como contenedor de inversión de control, hay una manera muy limpia de conseguirlo: utilizar handlers selectors. Los handlers selectors...

Seguir leyendo

Configurar decoradores en Castle Windsor
11 septiembre 2011 | , , | 2 comentarios

El patrón decorador es uno de mis favoritos porque, en mi opinión, permite añadir funcionalidad a un sistema de una forma muy sencilla. Si además contamos con algún tipo de contenedor de inversión de control, podemos añadir esa funcionalidad de una manera muy limpia y aséptica, sin tocar el código que ya existe y acercándonos...

Seguir leyendo

Parece lo mismo pero…
26 agosto 2011 | , , | 4 comentarios

…no lo es. Veo en smart421 lo que el autor considera un uso apropiado del patrón ServiceLocator: public class Controller : IController { private readonly IServiceLocator _serviceLocator; public Controller(IServiceLocator serviceLocator) { _serviceLocator = serviceLocator; } public void Execute<TContext>(TContext context) { var command = _serviceLocator.GetInstance<ICommand<TContext>>(); if (!command.IsNull()) { command.Execute(context); } var disposable = command as IDisposable;...

Seguir leyendo

Modificar la configuración de NHibernate por código
22 agosto 2011 | ,

Por extraño que pueda parecer, y pese a las alternativas existentes (Fluent NHibernate, ConfORM, «Sexy Mapping» en NH3.2), todavía hay veces que nos encontramos con aplicaciones que usan XML para definir los mappings de las entidades. Si tenemos la necesidad de modificar de forma global esos mappings, al estilo del uso de convenciones que existe...

Seguir leyendo