0
我必须采取哪些步骤将RIA服务转换为纯WCF服务?从RIA服务转换为WCF Web服务
注:
- 我有6种方法中的一种服务
- 我传递大对象返回&提出和我想对更多的控制权,所以我需要切换到WCF
- 我使用Silverlight作为我的主要客户端
我必须采取哪些步骤将RIA服务转换为纯WCF服务?从RIA服务转换为WCF Web服务
注:
简而言之,如果您将大对象来回传递给服务,那么您可能做错了。只需将您的对象发送到服务器,在服务器上执行所有必需的处理,然后将结果返回给客户端即可。为什么你应该承担通过电缆(通过HTTP)来回传输大型对象的性能和带宽成本?
由于您使用Silverlight作为您的主要客户端,因此您将使用异步调用(这是另一个坚持一个调用服务的原因)。有几种方法可以管理实例化WCF服务:您可以通过向Silverlight客户端添加服务引用来实现最简单的方法,也可以编写一些可以在服务上执行方法的自定义客户端,如下所示:
client.ExecuteAsync<IService, TResult>(String methodName, Action<TResult> complete, Action<Exception> failure, params object[] parameters)
然后在你的服务合同,你应该写你的业务的两个版本:同步和异步。为此,请使用编译条件将两者分开:
#if(SILVERLIGHT)
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginMyMethod(Int32 value, AsyncCallback callback, Object asyncState);
Double EndMyMethod(IAsyncResult result);
//more operations
#else
[OperationContract]
Double MyMethod(Int32 value);
//rest of the methods
#endif