2011-09-19 100 views
0

我只有用普通WCF服务和WCF REST服务的实践经验,但随着需求的改变,我需要看看其他的选择....WCF数据服务的OData VS MVVM

是什么的OData和WCF之间的差异数据服务?

.net中的WCF数据服务OData是不是可以配置为返回Atom提要或JSON等?

如果我想做一些比CRUD更复杂的事情会怎样?

例如,当我发出Http请求并获得如下响应时。

req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(FCookieLocation)); 
HttpWebResponse resp1 = (HttpWebResponse)req.GetResponse(); 
Stream stream = resp.GetResponseStream(); 

我想,然后像做

while (true) 
{ 
    byte b = stream.ReadByte(); 
} 

但REST服务,只要你从你写的方法返回,立即终止反应。有没有办法让流在服务器端保持活跃状态​​,这样我就可以继续向它写数据,并且客户端只是继续阅读它?

我知道ASP.Net Web处理程序具有这样的功能,但在我的情况下,我可能需要编写我自己的Web服务器,在Http请求的套接字上进行侦听(因此连接保持打开状态)以实现此目的并继续写入到插座也许?

对不起,如果问题不清楚,只是我可以解释它的最好方法。

如何最好使用WCF数据服务来适应MVVM模式?

+0

我在你的问题中计算了六个单独的问题。也许你可以为每个问题创建一个帖子?这将使我们更容易帮助您解决您的挑战。 –

回答

2

为了回答大家的一些问题:

  1. WCF数据服务是用于将数据传送到客户端技术(框架?)。它使用开放数据协议(OData)以RESTful方式提供这些结果。所以WCF数据服务是服务器(可以这么说),OData是消息传递模式/格式。

  2. WCF Data Services不是.NET中的OData。同样,OData只是有效载荷模式; WCF数据服务是交付机制。

  3. 您可以使用WCF数据服务执行比基本CRUD更复杂的操作。看一下WCF数据服务中的Service Operations--它们基本上让你通过提供专门的方法来完成特定的事情来增强你的服务。您还可以提供其他WCF服务和操作来增强您的解决方案。

我不确定关于流媒体和MVVM的其他问题......但我希望这至少是一个正确的方向。

希望这会有所帮助!

0

你的意思是通过HTTP持续流吗?

+0

是的,但是当我停止写入流时,客户端的响应也应该终止。 – TheWommies