С точки зрения Silverlight WCF в любом случае сильно ограничен, поэтому большинство обычных преимуществ WCF не применяются. Тем не менее, это все еще довольно хорошая, последовательная модель программирования.
WCF - это прежде всего стек SOAP, поэтому он очень хорошо представляет данные как жесткие операции. ADO.NET Data Services - это стек REST, позволяющий динамически выполнять очень выразительные запросы по сети.
Я не знаю, как это в Silverlight, но обычный прокси-сервер ADO.NET Data Services (бит в вашем клиентском приложении) имеет очень богатую поддержку как запросов, так и изменений данных обратно на сервер. Обратите внимание, что для внесения изменений требуется либо: Entity Framework, либо b: много работы. Но вы должны получить запрос и обновить очень дешево с этим подходом.
С WCF вы получаете намного более контролируемый стек, поэтому вам нужно будет кодировать все отдельные операции, которые вы хотите выполнять. Но это также означает, что у вас есть известная поверхность атаки и т.д .; гораздо сложнее использовать заблокированный API, например, фиксированную конечную точку SOAP.
Обычные веб-сервисы (до WCF): идите по этому маршруту, только если вы хотите поддерживать очень специфических унаследованных абонентов.