IRepository <>パターンとSOAを一緒に使用する際にはいくつかの助けが必要です。IRepository <>とSOAを一緒に
非常に複雑なビジネスロジックを含む会計アプリケーションを開発しています。現在、私はIRepositoryをDALとして使用しています。これは、基本的なCRUD + IQueryableインターフェイス、いくつかのキャッシング機能などを提供するだけです。
私はサービスやファサード層の役割を果たすBusinessLogic層を持っています(同じものですか?)。プレゼンテーションレイヤーで使用されるメソッドとしてここにカプセル化されたすべてのアプリケーションロジックが含まれています。
私はすべての基本的なCRUDがリポジトリに配置されているが、さらにそれは例えば、我々は唯一の私たちのアカウントリポジトリにこれらの基本的な方法があり、ビジネスロジックで行わ言ったように:でアカウントを取得するのではなく、
public class AccountRepository
{
public IList<Accounts> GetAll()
{
...
}
public Accounts Get(int id)
{
...
}
public IList<Accounts Where(Func<Accounts,bool> criteria)
{
...
}
public Accounts Add(Accounts item)
{
...
}
}
を
public class AccountService
{
AccountRepository repos;
public Accounts FindByNumber(int AccountNumber)
{
return repos.Where(o=>o.AccountNumber == AccountNumber).FirstOrDefault();
}
}
AccountServiceのは、また、リポジトリエンティティを使用し、単一のトランザクションで複数のエンティティ(アカウント、所有者と...)を追加CreateAccount()メソッドを持つことができます:具体的な数は、我々はこのようなサービスを持っているでしょう。
今、正しい方法で使用していることを知りたいですか?またはいくつかのポイントを逃したのですか?
おかげでたくさん、あなたがトランザクションを管理するために何をしますか?私はあなたがそれらを扱う層を意味しますか? (私はEngineレイヤーを考えています)、そしてこのアーキテクトでどのように実装しますか? – sos00
http://stackoverflow.com/questions/9511137/is-the-solution-design-optimal-c-sharp-3-tierにお答えください。 – Lijo