2008-08-09 3 views
32

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

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

+9

WCF имеет невероятно большой кривой обучения, не ошибитесь. Да, вы можете получить сервис, который работает не слишком-адски с помощью копирования и вставки и заполнения пробелов, но большинству разработчиков потребуется несколько месяцев, прежде чем они поймут, что делает вся эта настройка и настройка. – Sander 2010-04-09 09:04:28

+2

Большинство разработчиков не _need_, чтобы понять всю конфигурацию, и, кроме того, это радикально изменилось с .NET 4.0. – 2012-06-20 17:32:31

ответ

32

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

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

Here is a comparison между двумя.

9

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

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

Доводы ФОС являются:

  • затраты меньше времени в более длинный прогон
  • Протоколы коммутации без программирования

Недостаток WCF: некоторые статические имена свойств can be pretty lengthy ...

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

2

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

3

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

1

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

-2

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

WCF

Это абсурдно многословным, чтобы работать с ним, это не совсем совместимы с другими продуктами Microsoft, и, конечно, это не является широко принятой за пределами ВЗ Microsoft Мир.

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

Вместо

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

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

0

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

Его отличный способ построения приложения с супер быстрыми интерфейсами

Have посмотреть на Getting Started видео с MS, он эволюционировал из служб данных WCF.

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