Я работаю над новым проектом. Есть ли какие-то преимущества в использовании веб-службы WCF по сравнению с обычной устаревшей веб-службой?
Visual Studio предлагает шаблоны для обоих. Какие отличия? За и против?
Большинство разработчиков не используют необходимость для понимания всей конфигурации, и, кроме того, это радикально изменилось с появлением .NET 4.0.
Я могу поручиться за то, что это крутая кривая обучения. WCF почти византийский. Я изучаю его около месяца и только начинаю понимать. Существует множество сложностей, связанных с различными методами безопасности, различными типами цифровых сертификатов и проверкой клиент / сервер. Есть много очень хороших видеоуроков. Взгляните на questpond.com. Я не могу припомнить, чтобы ASMX был таким утомительным, но WCF кажется, что он довольно мощный и стоит затраченных усилий.





Плюсы самостоятельной работы:
Плюсы WCF:
Недостаток WCF: некоторые статические имена свойств может быть довольно длинным ...
Подводя итог: WCF позволяет вам сосредоточиться на программировании, но вам нужно сначала изучить его ;-)
Мне нравится тот факт, что создание служб WCF позволяет легко отделить службу от реализации. Вы можете написать свою службу, а затем разместить ее в IIS, консольном приложении или службе Windows; вы также можете общаться с ним через HTTP, net TCP и т. д.
Что такое «обычная старомодная веб-служба»? Служба ASMX или вы тоже используете WSE? Сервисы ASMX по своей природе несовместимы, не поддерживают спецификации WS- *, а ASMX - это технология, которая очень быстро устаревает. Службы WSE (улучшения веб-служб) ДОЛЖНЫ добавлять поддержку WS- * и могут быть сделаны для обеспечения взаимодействия, но WCF предназначен для замены WSE, поэтому вам следует потратить время на его изучение. Я бы сказал, что если ваше приложение не является быстрым и грязным, вы получите огромную гибкость и в конечном итоге получите лучший дизайн, если выберете WCF. У WCF делает есть кривая обучения, выходящая за рамки атрибута [WebMethod], но кривая обучения, на мой взгляд, чрезмерно преувеличена, и это экспоненциально более мощно и перспективно, чем унаследованные службы ASMX.
Если ваша временная шкала просто не может терпеть кривую обучения, вы окажете себе огромную услугу, изучая WCF, вместо того, чтобы просто придерживаться веб-служб ASP.NET. Приложения будут становиться все более и более распределенными и взаимосвязанными, а WCF - это будущее распределенных вычислений на платформе Microsoft.
Вот сравнение между двумя.
Pro для WCF: вам не нужен веб-сервер (например, IIS). На самом деле вам не нужна серверная ОС.
Модульные тесты внедрения и взаимодействия ваших сервисов сделать проще!
По моему опыту
WCF
Работать с ним абсурдно многословно, он не совсем совместим с другими продуктами Microsoft и, конечно же, не получил широкого распространения за пределами мира Microsoft.
Но моя основная проблема в том, что он нестабилен, имеет тенденцию к сбою (в некоторых ситуациях) и требует настройки, прежде чем его можно будет использовать.
Вместо
SOAP (также известный как стандартный веб-сервис), он работает, с ним легко работать и он широко совместим (Java-JAX принимает его без каких-либо изменений).
Добавление аутентификации в SOAP может быть немного сложным, но не невозможным.
-1 за дезинформацию и необоснованное мнение. Я могу только предположить, что вы говорите о конфигурации, когда говорите, что WCF «многословен», и в этом случае вам следует начать использовать .NET 4.0 или 4.5. «Несовместимо с другими продуктами Microsoft» должно быть обосновано, если вы хотите, чтобы к вам относились серьезно. Но вы теряете всякое доверие, противопоставляя WCF и SOAP.
@ Джон Сондерс, значит, ты меня троллишь без всякой причины. шиш парень. И нет, даже в net 4.0 wcf все еще наполовину испечен. В любом случае, WCF заблокирован поставщиком.
Вы явно не понимаете, о чем говорите. "Vendor locked" - явный бред. Вы можете исправить мое мнение, представив факты, а не разглагольствования.
Вы можете использовать WCF разными способами: с помощью http / SOAP вы получаете wsdl для автоматической генерации клиентского кода с большинством технологий, что удобно, если ваша служба должна быть общедоступной. Для внутренних служб можно использовать net.tcp и даже MSMQ - вы можете заблокировать себя, если настаиваете на этом.
Что я могу делать с WCF, чего не могу делать с SOAP ?.
Если ваш проект использует фреймворк 4.0, почему бы вам не попробовать WebApi, который легко понять и использует соглашение, а не конфигурацию.
Это отличный способ создания приложений со сверхбыстрым интерфейсом.
Посмотрите видеоролики о начале работы от MS, они произошли от служб данных WCF.
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api
У WCF невероятно большая кривая обучения, не ошибитесь. Да, вы можете заставить службу работать не так уж и плохо, если немного скопировать и вставить и заполнить пробелы, но большинству разработчиков потребуются месяцы, прежде чем они поймут, что на самом деле делает вся эта конфигурация и настройка.