Веб-службы - 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 может быть немного сложным, но не невозможным.