Веб-службы — WCF против.ASMX («Стандарт»)
-
08-06-2019 - |
Вопрос
Я работаю над новым проектом.Есть ли какая-либо польза от использования веб-службы WCF по сравнению с обычной старомодной веб-службой?
Visual Studio предлагает шаблоны для обоих.В чем различия?За и против?
Решение
Что такое «обычный старомодный веб -сервис?» Служба ASMX, или вы также используете WSE?Службы ASMX несовместимы по своей природе, не поддерживают спецификации WS-*, а ASMX — это технология, которая очень быстро устаревает.Службы WSE (Web Service Enhancements) ДЕЙСТВИТЕЛЬНО добавляют поддержку WS-* и могут быть созданы для совместимости, но WCF предназначен для замены WSE, поэтому вам следует потратить время на его изучение.Я бы сказал, что если ваше приложение не является быстрым и одноразовым, вы получите огромную гибкость и в конечном итоге получите лучший дизайн, если выберете WCF.WCF делает имеют кривую обучения, выходящую за рамки атрибута [WebMethod], но, по моему мнению, кривая обучения преувеличена, и она экспоненциально более мощная и ориентированная на будущее, чем устаревшие службы ASMX.
Если ваш график просто не выдерживает кривую обучения, вы окажете себе огромную услугу, изучая WCF, вместо того, чтобы просто придерживаться веб-служб ASP.NET.Приложения будут становиться все более распределенными и взаимосвязанными, а WCF — это будущее распределенных вычислений на платформе Microsoft.
Вот сравнение между двумя.
Другие советы
Плюсы выполнения всего самостоятельно:
- Нет кривой обучения
- Очень гибкий
Плюсы WCF:
- Затраты меньше времени в долгосрочной перспективе
- Переключение протоколов без программирования
Недостаток WCF:некоторые статические имена свойств может быть довольно длинным...
Обобщить:WCF позволяет вам сосредоточиться на программировании, но сначала вам нужно его изучить ;-)
Плюсы для WCF:Вам не нужен веб-сервер (т.ИИС).На самом деле вам не нужна серверная ОС.
Мне нравится тот факт, что написание сервисов WCF позволяет легко отделить ваш сервис от реализации.Вы можете написать свою службу, а затем разместить ее в IIS, консольном приложении или службе Windows;вы также можете общаться с ним через HTTP, сетевой TCP и т. д.
Модульные тесты по внедрению и взаимодействию ваших сервисов проводить проще!
Если в вашем проекте используется платформа 4.0, почему бы вам не попробовать WebApi, который прост для понимания и использует соглашение по настройке.
Это отличный способ создания приложений со сверхбыстрыми интерфейсами.
Посмотрите видеоролики о начале работы от MS. Они произошли от служб данных WCF.
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api
По моему опыту
WCF
Работать с ним абсурдно многословно, он не совсем совместим с другими продуктами Microsoft и, конечно же, не получил широкого распространения за пределами мира Microsoft.
Но моя главная проблема в том, что он нестабилен, имеет тенденцию выходить из строя (в какой-то ситуации), и его необходимо настроить, прежде чем его можно будет использовать.
Вместо
SOAP (он же стандартный веб-сервис), он работает, с ним легко работать и он широко совместим (Java-JAX принимает его без каких-либо изменений).
Добавление аутентификации в SOAP может быть немного сложным, но не невозможным.