質問

私は次のためにいくつかのアドバイスを探しています。

私は、データベースとWebサービスの間で交換可能であるDALを作成する必要があります。 私はC#とWPFで開発しています。

誰もがIUnitOfWorkの任意の良い実装を参照し、別のDALは、中またはDIのいくつかの並べ替えを使用してスイッチにすることができますか?

編集

いくつかの読み取りを行った後ので。私は、リポジトリのパターンを使用することを決めました。担当者のパターンはIUnitOfWorkになります。上記の周りに反対の道を読み込みます。また、ここで私はinまたはoutスイッチで何を意味するかの例です。

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

だから、私はIUnitOfWorkのもので助けを必要と思います。 Webサービスリポジトリはトリッキーなことを行っています。だから、どのように私は、トランザクションのいくつかの並べ替えを作成してください、そしてどのように私はキューにないなどなど。

それはそれ自身のUnitOfWorkを作成する必要があります。

最後に一つは、WPF環境で複数のスレッドは、スレッドごとにして、データベースに物事を保存することができ?私は、スレッドが別などを通じて半分の方法を犯す可能性が怖います。

役に立ちましたか?

解決

あなたはNHibernateは一緒に行く場合は、

あなたは SharpArchitecture にチェックアウトする必要があります。 contribのプロジェクトは、あなたのシナリオがカバーされています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top