Службы данных WCF против OData MVVM

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

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

Извините, если вопрос не ясен, просто как я могу его объяснить.

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


person TheWommies    schedule 19.09.2011    source источник
comment
Я насчитываю в вашем вопросе шесть отдельных вопросов. Может быть, вы могли бы создать одно сообщение для каждого вопроса? Так нам будет проще помочь вам решить вашу проблему.   -  person tom redfern    schedule 19.09.2011


Ответы (2)


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

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

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

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

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

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

person David Hoerster    schedule 20.09.2011

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

person Max    schedule 19.09.2011
comment
Да, но когда я перестаю писать в поток, ответ на клиенте тоже должен прекратиться. - person TheWommies; 20.09.2011