0

私のアプリケーションの現在のアーキテクチャ計画は

UI-> WCF Bal-> Generic Dal-> Entity Model

一般的なDalメソッドと関連エンティティを作成しました。実行する特定の操作は、ビジネスロジックから処理されます。

私はwcfでビジネスロジックを作成しようとしていますが、以前は個別のエンティティに対して個別のクラスを実行していたため、WCFコンテキストからmはどうすればよいか混乱しましたか?

私は当初、次のような一般的な実装を持つインターフェイスを作成することを考えました

 public interface IBalService<TEntity> where TEntity:class 
{
    [OperationContract]
    IDictionary<int, string> Populatelist();

    [OperationContract]
    IEnumerable<TEntity> Viewall();

    [OperationContract]
    void Insert(TEntity obj);

    [OperationContract]
    void Update(TEntity obj);

    [OperationContract]
    void Delete(TEntity obj);
}

これで、このインターフェイスは、Product、Category、Customerなどのエンティティごとに異なる実装を持つ必要がありますが、wcfは1つのサービスクラスのみを持つことができます...

私が今何をすべきか考えていますか?

4

1 に答える 1

2

一言で言えば、私がすること(そしていくつかのプロジェクトで成功すること)はこれです:

  • WCFをエンドポイントとして使用してサービスレイヤーを作成します。このレイヤーは、「UserService」、「MessagesService」などの「名前空間」としてのみ機能するクラスで囲まれた静的メソッドで構成できます。世界が「見る」のはこれらのクラスだけです。

  • 従来の完全なOOクラスを使用して、その背後にあるビジネスロジックを作成します

  • DALを作成します。BLがそれにアクセスすることに加えて、サービスレイヤーは、本格的なビジネスロジックを使用することを正当化しない単純な操作のために、それにアクセスすることもできます。

ジェネリックをWCFエンドポイントとして使用することはありませんが、使用することはできますが、サービスレイヤーを単一操作の単一メソッドとして扱うと、最終的に一種のパブリックAPIに変換するオプションを獲得できます(あなたはしたい)。

于 2012-07-16T06:55:20.963 に答える