Веб-службы - WCF и ASMX ( "Стандарт" )

Я работаю над новым проектом. Есть ли какая-либо польза от посещения веб-службы WCF через обычную веб-службу старой моды?

Visual Studio предлагает шаблоны для обоих. Каковы различия? Плюсы и минусы?

Ответы

Ответ 1

Что такое "обычный старомодный веб-сервис"? Служба ASMX, или вы используете WSE? Службы ASMX несовместимы между собой, не поддерживают спецификации WS- *, и ASMX - это технология, которая стареет очень быстро. Службы WSE (улучшения веб-сервисов) ДОБАВЛЯЮТ поддержку WS- * и могут быть сделаны совместимыми, но WCF предназначен для замены WSE, поэтому вы должны потратить время, чтобы изучить его. Я бы сказал, что, если ваше приложение не станет быстрым одноразовым, вы получите огромную гибкость и получите лучший дизайн, если вы выберете WCF. У WCF есть кривая обучения за пределами атрибута [WebMethod], но, по моему мнению, кривая обучения чрезмерно преувеличена, и это экспоненциально более мощное и будущее доказательство, чем устаревшие службы ASMX.

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

Вот сравнение между ними.

Ответ 2

Плюсы сделать все сами:

  • Нет кривой обучения
  • Очень гибкий

Плюсы WCF:

  • Затраты меньше времени на более длительный срок
  • Переключение протоколов без программирования

Недостаток WCF: некоторые статические имена свойств могут быть довольно длинными...

Подводя итог: WCF позволяет сосредоточиться на программировании, но сначала вы должны изучить его; -)

Ответ 3

Мне нравится факт, что использование служб WCF упрощает отключение вашего сервиса от реализации. Вы можете написать свою службу, а затем разместить ее в IIS, консольном приложении или службе Windows; вы также можете поговорить с ним через HTTP, net TCP и т.д.

Ответ 4

Pro для WCF: вам не нужен веб-сервер (т.е. IIS). Фактически вам не нужна ОС сервера.

Ответ 5

Пробные тесты по внедрению и взаимодействию с вашими услугами легче сделать!

Ответ 6

Если ваш проект использует фреймворк 4.0, почему бы вам не попробовать WebApi, который легко понять и использует соглашение по конфигурации.

Это отличный способ создания приложений со сверхбыстрыми интерфейсами

Посмотрите на начатые ролики из MS, он развился из служб данных WCF.

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api

Ответ 7

По моему опыту

WCF

Абсурдно многословие, чтобы работать с ним, оно не совсем совместимо с другими продуктами Microsoft и, конечно же, оно широко не принято за пределами мира Microsoft.

Но моя основная проблема заключается в том, что она нестабильна, ее тренды терпят неудачу (в какой-то ситуации), и для ее исправления требуется ее настройка до ее использования.

Вместо

SOAP (также известный как Webservice), он работает, он прост в работе и широко совместим (Java-JAX принимает его без каких-либо изменений).

Добавление аутентификации в SOAP может быть немного сложным, но не невозможным.