我正在从WCF服务向Silverlight客户端提取数据(图像,200-400kb),并注意到Silverlight每次到达此类消息时会停止一小部分秒。这并不是真的严重,但动画停顿了一段时间,整个用户体验都被破坏了。通过WCF和WebClient下载图片
提问时间:
1)你认为这将是有益的,而不是使用Web客户端?
2)Silverlight中的“正常”WCF客户端(通过“正常”我的意思是事件驱动的场景)反序列化主(调用)线程或背景中的数据合约? 3)您是否认为从XML中的数据契约中反序列化二进制对象所需的开销(+由于Base64 XML编码而产生更大的数据大小)比服务器的额外往返更大/更小(在这种情况下,数据契约只会包含图像的URL,比我可以使用WebClient获取它 - 因此另一次旅行)?
4)是否可以在后台线程(而不是UI线程)中从byte []数组创建Image?
任何帮助,意见,建议非常感谢。
感谢,
卡罗尔
PS:我不能使用的DeepZoom因为业务需求真的不匹配的DeepZoom场景。
感谢史蒂夫,最后我用REST协议创建了第二个终点,因此我可以将图像作为二进制从相同的服务返回,并通过WebClient在Silverlight中使用它。 – 2009-05-01 23:54:43
更新:我做了一些性能测试。如果有人感兴趣:通过REST的原始二进制数据比DataContract的序列化相同的数据快2.5倍。 – 2009-05-02 02:49:26