如何重构庞大的WCF服务

时间:2011-09-27 18:13:27

标签: wcf casting

我是Windows Communication Foundation的新手,我正在开发一个向前端提供数据的系统。

系统的WCF部分包含数百个检索特定过滤数据集的查询。这些数据集通过一百多个不同的类发送回客户端。几乎看起来每个服务操作都有一个单独的类。

代码的快照看起来像

 [OperationContract]
    IList<A> LoadAdata();
 [OperationContract]
    IList<B> LoadBdata();
 [OperationContract]
    IList<C> LoadCDdata();
.
.

此外,花费大量时间和代码从数据集转换为IList&lt;&gt;。对象。

我的问题是:

这是WCF的工作方式吗?

有没有更好的方法来构建这项服务?

1 个答案:

答案 0 :(得分:0)

  1. 您描述的典型结构不是WCF工作的绝对必要条件。您的公司可以采用标准方式处理服务和数据合同。例如:ServiceResponse ServiceOperation(ServiceRequest request);是一种常见的模式。这允许灵活地维护服务操作的输入和输出参数,而不改变操作的外部可见签名。这似乎有点开销,但可以达到目的。

  2. 操作是标准的CRUD操作,并且看起来都一样,并且后面没有任何特定的业务逻辑,请查看WCF Data Services,它将您的数据模型公开为标准化的OData接口。客户端能够创建自定义查询并防止服务必须公开大量的接口操作。在这种情况下,这一切都是为您处理的。