Conselhos sobre UnitOfWork com NHibernate e / ou Serviço Web
-
11-09-2019 - |
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.
Solução
Você deve verificar se SharpArchitecture se você vai com NHibernate. O projeto contrib tem seu cenário coberto.