1

WCF でのサービスと操作のモデリングに関するガイダンスをいただければ幸いです。

私は一連のビジネス ドメインを持っており、それぞれに WCF で使用できる特注のメソッドがあります。オブジェクト指向ビューは次のようになると思います。

interface IBusinessDomain1
{
    MyClass1 Method1(...)
    MyClass2 Method2(...)
}

interface IBusinessDomain2
{
    MyClass3 Method3(...)
    MyClass4 Method4(...)
}

私の自然な傾向は、各インターフェイスをサービスにし、各メソッドを操作にすることでした。これに関する問題は、個々のドメイン内の操作にはまったく異なるバインディング構成が必要になる可能性があることです。つまり、Method1 は同期である必要があり、Method2 は非同期である必要がある場合があります。

WCF のサービスと操作を定義する場合、データの種類とデータの送信方法について考える方がよいでしょうか? おそらく、特定の方法で動作する必要があるすべてのビジネス ドメインのメソッドをグループ化し、それらを 1 つのサービスにまとめているのでしょうか? 他の人が同様のシナリオにどのように取り組んだのだろうか?

私が見たほとんどの WCF チュートリアルと例は、かなり単純なモデルを使用する傾向があり、多くの場合、すべて同じバインドを共有する「加算」、「減算」などの操作を提供する「電卓」サービスです。

私のサービスと操作を定義する方法についてのアドバイス、またはあまり見つからないため、さらに読むためのリンクをいくつかいただければ幸いです。

前もって感謝します、ウィル

4

1 に答える 1

3

コントラクトが非同期で呼び出されるかどうかに関して、コントラクトをグループ化するのは悪い考えだと思います。意味のあるコントラクトの論理グループを保持する必要があります。

また、コントラクトに適用する可能性のあるさまざまなバインド構成についても詳しく説明する必要があります。クライアントでコントラクトのメソッドを非同期に呼び出す必要がある場合、クライアントは非同期操作をサポートするコントラクトを生成することを選択できるため (Begin* と End を取得する場所)、サービス自体が関与する必要はありません。 * チャネル ファクトリが生成するコントラクトのメソッド)。

ただし、クライアントがステータスをチェックするためにサービスに返すトークンをサービスに返させるようなことをしている場合は、デザインをよりクリーンにするため、コールバック インターフェイスを検討することをお勧めします。

さまざまなバインディング構成がエンドポイント (つまり、トランスポート チャネルなど) の変更に関係している場合、エンドポイントごとに異なるコントラクトを検討することもできますが、ここで探しているような印象は受けません。

于 2009-01-21T17:26:50.580 に答える