Domanda

Sto cercando qualche consiglio per il seguente.

Ho bisogno di creare un DAL che è intercambiabile tra un database e un webservice. Sto sviluppando in C # e WPF.

ha nessuno di vedere qualche buona implementazioni di un IUnitOfWork e permette diverse DAL essere interruttore in o out utilizzando una sorta di DI?

Modifica

Quindi, dopo aver fatto qualche lettura. Ho deciso di utilizzare un Pattern Repository. Il modello Rep prende in un IUnitOfWork. Sopra si legge il contrario. qui è anche un esempio di ciò che intendo con l'interruttore in o fuori.

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

Quindi penso che ho bisogno di aiuto con la roba IUnitOfWork. I repository Web Service stanno per essere difficile. Allora, come faccio a creare una sorta di transazione, e come faccio a coda ecc ecc

Un'ultima cosa, in un ambiente WPF più thread potrebbero essere salvare le cose al database, quindi per ogni thread che dovrebbe creare il proprio UnitOfWork? Ho paura di un thread potrebbe impegnarsi a metà strada attraverso un altro ecc.

È stato utile?

Soluzione

Si dovrebbe verificare SharpArchitecture se si va con NHibernate. Il progetto contrib ha coperto lo scenario.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top