Pregunta

Estoy buscando un consejo para la siguiente.

Es necesario crear un DAL que es intercambiable entre una base de datos y un servicio web. Estoy desarrollando en C # y WPF.

Tiene que nadie vea ningún buenas implementaciones de un IUnitOfWork y permite diferentes DAL sea dentro o fuera del interruptor utilizando algún tipo de DI?

Editar

Así que después de hacer un poco de lectura. He decidido utilizar un modelo de repositorio. El patrón Rep toma en un IUnitOfWork. Por encima se lee en el sentido contrario alrededor. También en este caso es un ejemplo de lo que quiero decir con el interruptor en o fuera.

NHibernateProductRepository : IRepository<Product>  
{
    private IUnitOfWork _unitOfWork = null;

    public NHibernateProductRepository(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;    
    }
}

WebServiceProductRepository : IRepository<Product>  
{
    private IUnitOfWork _unitOfWork = null;

    public WebServiceProductRepository (IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;    
    }
}

....

public static class Bootstrapper 
{
     public static void Load() 
     {
         // Some sort of IOC.. Which will also be used for DI. 
     }
}

Así que supongo que necesito ayuda con las cosas IUnitOfWork. Los repositorios de Servicios Web van a ser complicado. Entonces, ¿cómo puedo crear algún tipo de transacción, y cómo lo Cola, etc, etc

Una última cosa, en un entorno de múltiples hilos de WPF podría ahorrar cosas a la base de datos, por lo que para cada hilo debería crear su propio UnitOfWork? Tengo miedo de un hilo podría comprometerse a mitad de camino a través de otro, etc.

¿Fue útil?

Solución

Debe retirar SharpArchitecture si vas con NHibernate. El proyecto contrib ha cubierto su escenario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top