Веб-сервисы - WCF против ASMX («Стандарт») - PullRequest
32 голосов
/ 09 августа 2008

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

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

Ответы [ 7 ]

32 голосов
/ 10 августа 2008

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

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

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

9 голосов
/ 09 августа 2008

Плюсы выполнения всех самостоятельно:

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

Плюсы WCF:

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

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

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

3 голосов
/ 06 октября 2008

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

2 голосов
/ 10 августа 2008

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

1 голос
/ 13 марта 2009

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

0 голосов
/ 30 сентября 2013

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

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

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

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

0 голосов
/ 20 июня 2012

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

WCF

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

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

Вместо

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

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

...