Служба WCF с поддержкой Silverlight против веб-службы против службы данных ADO.NET - PullRequest
18 голосов
/ 12 декабря 2008

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

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

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

Ответы [ 3 ]

9 голосов
/ 12 декабря 2008

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

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

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

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

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

6 голосов
/ 19 августа 2009

Я знаю, что это старый, но я просто хотел добавить свои 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, окнах и т. Д.

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

  • сложные типы данных легче раскрывать и сериализовать.

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


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

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

4 голосов
/ 12 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...