Службы данных WCF против OData MVVM - PullRequest
0 голосов
/ 19 сентября 2011

У меня был только практический опыт работы с простыми службами WCF и службами WCF REST, но по мере необходимости мне нужно искать другие варианты ....

В чем разница между серверами данных OData и WCF?

Разве OData служб данных WCF не находится в .Net (его можно настроить для возврата фида 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 Services, как только вы вернетесь из написанного вами метода, немедленно прекратят ответ. Есть ли способ сохранить поток на стороне сервера, чтобы я мог продолжать записывать данные на него, а клиент просто продолжал читать с него?

Я знаю, что в веб-обработчиках ASP.Net есть нечто подобное, но в моем случае мне может понадобиться написать собственный веб-сервер, который прослушивает сокет для запросов Http (поэтому соединение остается открытым), чтобы добиться этого и продолжать писать в розетка что ли?

Извините, если вопрос не ясен, просто лучший способ, которым я могу это объяснить.

Как лучше всего использовать службы данных WCF для соответствия шаблону MVVM?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Чтобы ответить на некоторые ваши вопросы:

  1. Службы данных WCF - это технология (инфраструктура?), Используемая для доставки данных клиентам.Он использует протокол открытых данных (OData) для доставки этих результатов в режиме RESTful.Таким образом, службы данных WCF - это сервер (так сказать), а OData - схема / формат обмена сообщениями.

  2. Службы данных WCF НЕ являются OData в .NET.Опять же, OData - это просто схема полезной нагрузки;Службы данных WCF - это механизм доставки.

  3. Вы можете сделать что-то более сложное, чем простой CRUD, используя службы данных WCF.Взгляните на Операции с сервисами в Сервисах данных WCF - они по сути позволяют улучшить ваш сервис, предоставляя специализированные методы для выполнения определенных задач.Вы также можете предоставить дополнительные услуги и операции WCF для улучшения своего решения.

Я не уверен в ваших других вопросах о потоковой передаче и MVVM ... но я надеюсь, что это по крайней мереначать в правильном направлении.

Надеюсь, это поможет!

0 голосов
/ 19 сентября 2011

Вы имеете в виду постоянный поток по HTTP?

...