Pergunta

Eu estou procurando alguns conselhos para o seguinte.

Eu preciso criar uma DAL que é intercambiável entre um banco de dados e um webservice. Estou desenvolvendo em C # e WPF.

tem ninguém vê qualquer boas implementações de uma IUnitOfWork e permite que diferentes DAL ser interruptor dentro ou fora usando algum tipo de DI?

Editar

Então, depois de fazer algumas leituras. Eu decidi usar um padrão de repositório. O Padrão Rep leva em um IUnitOfWork. Acima lê o oposto caminho de volta. Também aqui é um exemplo para o que quero dizer com a chave dentro ou para fora.

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. 
     }
}

Então eu acho que precisa de ajuda com o material IUnitOfWork. Os repositórios de serviço Web vão ser complicado. Então, como faço para criar algum tipo de transação, e como faço para fila etc etc.

Uma última coisa, em um WPF ambiente vários segmentos poderia estar salvando coisas para o banco de dados, de modo que para cada segmento deve-o criar o seu próprio UnitOfWork? Estou com medo um fio poderia comprometer a meio caminho através de um outro etc.

Foi útil?

Solução

Você deve verificar se SharpArchitecture se você vai com NHibernate. O projeto contrib tem seu cenário coberto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top