Разница между службой WCF, службами WCF RIA и службой данных WCF - PullRequest
5 голосов
/ 10 июня 2010

В чем разница между службой WCF, службами WCF RIA и службами данных WCF?

Ответы [ 4 ]

7 голосов
/ 14 июня 2010

WCF - это инфраструктура связи для сервисов в целом.Службы RIA WCF автоматически генерируют прокси-объекты клиента и сервера, чтобы упростить разработку приложений, и от WCF зависит фактическая связь.Службы данных ADO.Net были переименованы в Службы данных WCF и предоставляют службы OData через WCF.

3 голосов
/ 03 ноября 2010

Вот хорошая статья, объясняющая службы данных WCF (ADO.Net) и службы данных WCF Ria http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/

1 голос
/ 23 октября 2014

Следующий ответ не от меня, но все же отвечает на часть вопроса, которая осталась без ответа.

Я скопировал этот ответ отсюда https://social.msdn.microsoft.com/Forums/en-US/687426d9-709f-4e73-8c4c-dd3630f006e7/wcf-data-service-or-wcf-service?forum=adodotnetdataservices

Службы WCF ориентированы на операции - главное, что вы делаете с ними, это определение операций (функций).Данные становятся второстепенными.С другой стороны, они могут работать над множеством различных транспортов / протоколов.У вас есть возможность строго определить, что клиент может и не может сделать.Клиент не может создавать новые запросы / операции, сервер должен реализовывать все, что нужно клиенту.

Службы данных WCF ориентированы на данные - главное, что вы делаете с ними, это определяетемодель данных, которая будет представлена.Операции над данными «предопределены» (Создать / Удалить / Обновить / Читать).Он поддерживает только протокол HTTP и использует REST.Обычно вы позволяете клиентам решать, что они хотят делать (в некоторых границах).Одно из основных отличий от службы WCF заключается в том, что клиент может выдавать запрос к модели данных (например, как SQL), которую клиент создает.Это означает, что серверу не нужно точно знать, что клиенту нужно заранее, клиент сможет определить время выполнения.

Vitek Karas [MSFT]

1 голос
/ 04 апреля 2012

Это от Коллина Блэра

http://forums.silverlight.net/t/103015.aspx/1

Ваш вопрос аналогичен вопросу о том, в чем разница между простой пирожкой гамбургера и гамбургером, поэтому трудно получить прямой ответ. Получение хорошего ответа также затрудняется тем фактом, что RIA Services не будет «полнофункциональным», по крайней мере, до PDC, поэтому любой ответ, который вы получите, будет основан на ожиданиях и предположениях. Наконец, RIA Services является множественным по причине, есть несколько классов в RIA Services, которые делают разные вещи. Вот мой ответ, основанный на дорожных картах и ​​моем понимании целей команды RIA Services.

Службы RIA - это библиотека клиентских и серверных компонентов, которые связаны с ADO.NET Data Services. При использовании полного стека RIA Services разница между RIA Services и обычным WCF заключается в следующем:

Объекты данных на стороне клиента генерируются с использованием отражения во время компиляции на основе реальных объектов на стороне сервера, а не контракта на обслуживание. Это позволяет RIA Services предоставлять гораздо более богатую объектную модель на стороне клиента, включая любые бизнес-правила и отношения между объектами. Однако это означает, что RIA Services отказывается от некоторой гибкости по сравнению с обычным WCF. Например, сериализатор RIA Services в настоящее время не поддерживает некоторые типы данных, которые WCF сможет обработать. Службы RIA, как и службы данных ADO.NET, поддерживают сериализацию запросов LINQ между клиентом и сервером. Это означает, что клиент может создать запрос LINQ и запустить его на стороне сервера. Службы RIA, в отличие от простых служб данных ADO.NET, не генерируют CRUD автоматически во время выполнения. Для тех, кто знаком с SQL Server, я описываю ADO.NET Data Services как поддерживающие регулярные триггеры (или перехватчики запросов), в то время как RIA Services требует триггеры INSTEAD OF.

...