Подтвердить что ты не робот

Silverlight включил службу WCF vs Web Service и службу данных ADO.NET

Хорошо, все эти методы получения данных в элементе управления Silverlight меня путают.

Я просмотрел службы данных ADO.Net Data Services, Web Service и Silverlight с поддержкой WCF. Я просто не уверен, когда кто-то подходит для использования над другим. Какие плюсы и минусы предлагают каждое предложение?

Я создал веб-приложение и элемент управления Silverlight. Я добавлю один из этих 3 вариантов в свое веб-приложение и буду использовать его из своего компонента Silverlight.

4b9b3361

Ответ 1

С точки зрения Silverlight WCF в любом случае сильно ограничена, поэтому большинство обычных преимуществ WCF не применяются. Тем не менее, это по-прежнему довольно хорошая, последовательная модель программирования.

WCF - это прежде всего стек SOAP, поэтому он очень хорош при представлении данных в виде жестких операций. Служба данных ADO.NET - это стек REST и позволяет динамически реагировать на проводки очень выразительных запросов.

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

С WCF вы получаете гораздо более контролируемый стек, поэтому вам нужно будет закодировать все отдельные операции, которые вы хотите выполнить. Но это также означает, что у вас есть известная поверхность атаки и т.д.; гораздо сложнее использовать заблокированный API, такой как фиксированная конечная точка SOAP.

Регулярные веб-сервисы (pre-WCF): используйте только этот маршрут, если хотите поддерживать очень специфические унаследованные абоненты.

Ответ 2

Я знаю, что это старо, но я просто хотел добавить свои 2 цента.

Я очень рекомендую использовать WCF; и используйте проект Библиотеки служб WCF через веб-службу Silverlight. Они оба по существу одинаковы, но веб-сервис с поддержкой Silverlight меняет привязку к базовому, а не ws *. Он также добавляет атрибут режима совместимости asp.net.


  • WCF обычно быстрее: см. "Сравнение производительности Windows Communication Foundation (WCF) с существующими распределенными коммуникационными технологиями" @http://msdn.microsoft.com/en-us/library/bb310550.aspx

  • WCF инкапсулирует asmx, wse, msmq, корпоративные сервисы и удаленное взаимодействие.

  • Сервисы WCF могут быть включены и выполняться внутри iis, форм Windows и т.д.

  • WCF не ограничивается использованием HTTP, но с минимальной конфигурацией также можно использовать tcp, именованные каналы и т.д.

  • сложные типы данных проще выставлять и сериализовывать.

  • WCF очень хорошо масштабируется. Кроме того, они могут использоваться для включения рабочих процессов из WF.


Вероятно, нет неправильной технологии для использования, но похоже, что Microsoft собирается продвигаться вперед с WCF. Кроме того, гораздо проще написать одну базу кода, которая может быть раскрыта так много разных способов с помощью всего лишь нескольких изменений конфигурации для службы WCF.

Я не рекомендую использовать веб-службу с поддержкой Silverlight только потому, что структура программирования немного улучшена с помощью модели WCF, но это, вероятно, вопрос.

Ответ 3

Если вам нужно выбирать между веб-сервисом и службой WCF, мой совет - пойти с WCF. Это более современные и более мощные технологии. Что касается ADO.Net Data Services - вы можете использовать это, если все, что вам нужно, - это получение/фиксация некоторых данных из/в базу данных на сервере.