PerSessionとPerCallのどちらを使用するかを決定するための一般的な経験則は何ですか?
私は少し重い(私は思う..)WCFサービスを持っており、約80のテーブルへのCRUDメソッドを含んでいます。
WCFサービスを1つのサービス内の7つの契約(つまり、1つのサービス内の7つのエンドポイント)に分割し、各契約が独自のドメインを処理するようにしました。たとえば、販売契約があるため、すべての販売関連テーブルと対応する操作は、販売の「制限されたコンテキスト」内にあります
したがって、私のWCFサービス構造は次のようになります。
public partial class ABCService : ISalesService
{
//CRUD methods of all tables related to Sales
}
public partial class ABCService : IMarketingService
{
//CRUD methods of all tables related to Marketing
}
public partial class ABCService : ICustomerService
{
//CRUD methods of all tables related to Customer
}
public partial class ABCService : IProductService
{
//CRUD methods of all tables related to Products
}
PerCallに関する私の懸念は、かなり大規模なDB / WCFサービスを使用しているため、各呼び出しで消費されるリソースの量に、ユーザー数とサービスを呼び出す速度を掛けたものになるのではないかということです。大きすぎます。
詳細はわかりませんが、チャネルプロキシの作成にはコストがかかることを読みました。
ああ、私はVSのサービス参照の追加の代わりに手書きのプロキシを使用してWCFサービスを利用しています。
だから、私の質問は、どちらを使うべきですか?PerSessionまたはPerCall?
アップデート:
- 呼び出しの間に状態を維持する必要はありません。
- NetTCPバインディングを使用しています