Frage

Ich suche nach ein paar Ratschläge für die folgenden.

Ich brauche eine DAL zu erstellen, die zwischen einer Datenbank und einem Webservice austauschbar ist. Ich entwickle in C # und WPF.

hat jemand eine gute Implementierungen eines IUnitOfWork sehen und erlaubt es, verschiedene DAL-Schalter zu sein, in oder aus einer Art von DI mit?

Bearbeiten

So, nachdem einige Lesung zu tun. Ich habe beschlossen, ein Repository-Muster zu verwenden. Das Rep-Muster nimmt in einem IUnitOfWork. Oberhalb liest die entgegengesetzte Richtung um. Auch hier ist ein Beispiel für das, was ich meine mit dem Schalter ein oder aus.

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

Also ich glaube, ich muß mit den IUnitOfWork Sachen helfen. Die Web-Service-Repositorys wird schwierig sein. So wie erstelle ich eine Art von Transaktion, und wie kann ich Warteschlange etc etc.

Eine letzte Sache, in einer WPF-Umgebung mehr Threads Dinge in die Datenbank könnten zu speichern, so dass für jeden Thread sollte es seine eigene UnitOfWork schaffen? Ich habe Angst, ein Thread auf halbem Weg durch ein anderes usw. begehen könnte.

War es hilfreich?

Lösung

Sie sollten überprüfen SharpArchitecture , wenn Sie mit NHibernate gehen. Das Contrib Projekt hat Ihr Szenario abgedeckt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top