Question

Je cherche quelques conseils pour ce qui suit.

Je dois créer un DAL qui est interchangeable entre une base de données et un webservice. Je développe en C # et WPF.

a quelqu'un voit de bonnes implémentations d'un IUnitOfWork et permet différentes DAL d'être ou commutateur à l'aide d'une sorte de DI?

EDIT

Alors après avoir fait un peu de lecture. J'ai décidé d'utiliser un modèle référentiel. Le modèle Rep prend dans un IUnitOfWork. lit au-dessus du sens inverse autour. En outre un exemple ici pour ce que je veux dire avec l'interrupteur ou arrière.

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

Je suppose que je dois aider les choses IUnitOfWork. Les Référentiels de service Web va être difficile. Alors, comment puis-je créer une sorte de transaction, et comment la file d'attente, etc etc

Une dernière chose, dans un environnement WPF plusieurs threads pourraient être sauver les choses à la base de données, pour chaque thread devrait-il créer son propre UnitOfWork? J'ai peur un fil pourrait engager à mi-chemin par un autre etc.

Était-ce utile?

La solution

Vous devriez consulter SharpArchitecture si vous allez avec NHibernate. Le projet a contrib votre scénario couvert.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top