0

初めて WCF サービスを作成したいのですが、どのように構築すればよいかわかりません。

このサービスは、データベースからさまざまな種類のアイテムを取得するためのリクエストを受け取ります。

List<Product> getProducts()
List<Module> getModules(Product)
List<Releases> getReleases(Product)
List<Feature> getFeatures(Product,Module)
//many more types of items to get etc...
//and then the equivalent functions to update those item types back in the database...

では、これらすべてを 1 つのサービス コントラクトとして実装する必要がありますか?

[ServiceContract]
public interface IMyService{}

public class MyService : IMyService{}

このように、1 つのサービスをホストするだけでよいことは理解していますが、多くの人が可能なすべてのリクエストに対応しようとして、大量のトラフィックが発生して行き詰まる可能性はありますか?

または、アイテムの種類ごとに異なるサービス契約を結び、それぞれを個別に実装して、それぞれを別々のマシンでホストして、トラフィックが集中する可能性のある時間によるパフォーマンスの低下を減らす必要がありますか?

[ServiceContract]
public interface IMyProductService{}
public class MyProductService : IMyProductService{}

[ServiceContract]
public interface IMyModuleService{}
public class MyModuleService : IMyModuleService{}

[ServiceContract]
public interface IMyUserService{}
public class MyUserService : IMyUserService{}

... etc etc ...
4

1 に答える 1

1

私はすべてのコントラクトの単一の実装を持っています。何かのようなもの:

public interface IUserService{}
public interface IYourModuleService{}
public interface IYourProductService{}
    public class YourService : IUserService, IYourModuleService, IYourProductService{}

そうすれば、クライアントが必要なコントラクトのみを使用するように制御することもできますが、(大量のボリュームが予想される場合を除き)コントラクトの設計ではなく、実装の設計がボトルネックの最初の窓口になるはずです。

また、すべての WCF ツールを「そのまま」使用して、ボリュームやインスタンスなどを制御し、プロセスを合理化することもできます。

要するに、単一の実装、複数のサービス コントラクトです。

于 2012-08-11T10:14:57.017 に答える