1

我将不胜感激有关 WCF 中建模服务和操作的一些指导。

我有一系列业务领域,每个领域都有我希望能够通过 WCF 使用的定制方法。我猜一个 OO 视图会是这样的:

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

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

我的自然倾向是让每个接口成为服务,让每个方法成为操作,我遇到的问题是各个域中的操作很可能需要完全不同的绑定配置。即 Method1 可能需要同步,Method2 可能需要异步。

在为 WCF 定义服务和操作时,更好的方法是考虑数据类型和需要发送数据的方式吗?也许所有业务领域的方法都需要以特定方式工作并在一个服务中使用?我想知道其他人是如何处理类似情况的?

我见过的大多数 WCF 教程和示例都倾向于使用相当简单的模型,通常是提供“添加”、“减去”等操作的“计算器”服务,它们都共享相同的绑定。

一些关于如何定义我的服务和操作的建议将不胜感激,或者只是一些进一步阅读的链接,因为我找不到太多。

提前致谢, 威尔

4

1 回答 1

3

我认为将你的合约组合在一起以确定它们是否以异步方式调用是一个坏主意。您仍然应该为您的合同保留有意义的逻辑分组。

您还需要详细说明您可以将哪些不同的绑定配置应用于您的合同。如果您需要在客户端上异步调用合约上的方法,那么这不是服务必须关心的事情,因为客户端可以选择生成支持异步操作的合约(您将获得 Begin* 和 End * 通道工厂将为您生成的合约上的方法)。

However, if you are doing something like having the service return a token which the client passes back to the service to check on status, you might want to consider a callback interface, as it will make your design much cleaner.

If the different binding configurations have to do with changes in the endpoint (i.e. the transport channel, for example) then you might consider different contracts for different endpoints, but I don't get the impression that is what you are looking for here.

于 2009-01-21T17:26:50.580 回答