Веб-сервисы - WCF против ASMX («Стандарт»)

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

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

9.08.2008 06:50:22
WCF имеет невероятно большую кривую обучения, не заблуждайтесь. Да, вы можете получить услугу, работающую не слишком адски с некоторой копией и вставкой и заполнением пробелов, но большинству разработчиков потребуются месяцы, прежде чем они поймут, что на самом деле делает эта конфигурация и настройка.
Sander 9.04.2010 09:04:28
Большинству разработчиков не нужно разбираться во всей конфигурации, и, кроме того, это радикально изменилось в .NET 4.0.
John Saunders 20.06.2012 17:32:31
Я могу ручаться за то, что это крутая кривая обучения. WCF почти византийский. Я изучаю это около месяца, и я только начинаю думать об этом. Существует множество сложностей, связанных с различными методами защиты, различными типами цифровых сертификатов и проверкой клиент / сервер. Вокруг много хороших видеоуроков. Посмотрите на questpond.com. Я не могу вспомнить, чтобы ASMX был таким же мучительным, но WCF кажется достаточно мощным, и он того стоил.
Guru Josh 7.05.2014 15:23:59
7 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

33
10.08.2008 02:36:34

Плюсы делать все самостоятельно:

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

Плюсы WCF:

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

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

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

9
9.08.2008 12:14:17

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

2
25.01.2012 21:33:51

Pro для WCF: вам не нужен веб-сервер (то есть IIS). На самом деле вам не нужна серверная ОС.

3
5.10.2008 20:02:57

Модульные тесты по внедрению ваших сервисов и взаимодействию сделать проще!

1
12.03.2009 21:56:24

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

WCF

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

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

Вместо

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

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

-2
20.06.2012 16:43:04
-1 за дезинформацию и необоснованное мнение. Я могу предположить, что вы говорите о конфигурации, когда говорите, что WCF «многословен», и в этом случае вам следует начать использовать .NET 4.0 или 4.5. «Несовместимо с другими продуктами Microsoft» следует обосновать, если вы хотите, чтобы вас воспринимали всерьез. Но вы теряете доверие, сравнивая WCF с SOAP.
John Saunders 20.06.2012 17:31:46
@Джон Сондерс, так что вы меня без причины троллите. блин парень. И нет, даже в net 4.0 wcf все еще наполовину испечен. В любом случае, WCF заблокирован поставщиком.
magallanes 21.06.2012 15:28:43
Вы, очевидно, понятия не имеете, о чем вы говорите. «Поставщик заблокирован» - явная чушь. Вы можете исправить мое мнение, представив факты, а не скандалы.
John Saunders 21.06.2012 16:10:57
Вы можете использовать WCF разными способами: с помощью http / SOAP вы получаете wsdl для автоматического создания клиентского кода с большинством технологий, что очень удобно, если ваша служба должна быть общедоступной. Для внутренних служб net.tcp и даже MSMQ являются опцией - вы можете заблокировать себя, если будете настаивать на этом.
mbx 23.11.2012 14:07:48
Что я могу сделать с WCF, что я не могу сделать с SOAP?
magallanes 27.11.2012 16:36:11

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

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

Посмотрите на начало видео от MS, он эволюционировал от служб данных WCF.

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

0
30.09.2013 06:27:21