ASMX против WCF - PullRequest
       14

ASMX против WCF

2 голосов
/ 05 августа 2009

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

Я не вижу контраста между WCF, привязанным к HTTP, и строго типизированным веб-сервисом. Почему это было бы иначе? Я согласен, что есть некоторые нюансы разработки, особенно связанные с XmlSerializer в ASMX vs WCF и множеством жаргонов Microsoft. Если не считать этих; я вижу только параллели

DataContract = WSDL Type ServiceContract = WSDL (он же определение сервиса) OperationContract = WebMethod

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

Есть ли другие эксплуатационные различия?

Может кто-нибудь показать мне свет и избавить меня от моих страданий ?? :))

Ответы [ 3 ]

13 голосов
/ 05 августа 2009

Что ж, если вы сократите обсуждение только до HTTP, то у WCF есть еще множество преимуществ по сравнению с ASMX:

  • больше и лучшие настройки безопасности (возможность использовать безопасность транспорта или сообщений)
  • гораздо большая гибкость - гораздо больше можно настроить и настроить в WCF, либо в файлах конфигурации, либо в коде
  • Веб-службы ASMX могут существовать только внутри IIS - IIS является обязательным требованием; вы можете самостоятельно размещать свои службы WCF в консольном приложении или службе Windows NT
  • четкий акцент на использовании контрактов на обслуживание и данных в WCF делает интерфейс намного чище и намного лучше разделяет проблемы (лучший код, в конце концов)
  • поддержка таких вещей, как надежный обмен сообщениями и поддержка транзакций (даже через HTTP)

Вкратце: хотя различия могут быть меньше, когда вы ограничиваете WCF только HTTP, я все же думаю, что он лучше, и если у вас есть выбор, чтобы начать что-то новое сегодня, во что бы то ни стало, используйте WCF вместо ASMX!

Рик Страл очень хорошо описывает это в своем блоге :

Я бы сказал, что использование WCF для любых новых сервисов, вероятно, является хорошей идеей, даже если вы придерживаетесь чистого HTTP и SOAP, потому что, создав свой сервис с WCF, вы можете позже принять решение опубликовать этот же сервис с использованием WAS и также обеспечивает более высокую производительность транспорта TCP / IP. Или вас могут попросить предоставить некоторые расширенные функции протоколов WS- , такие как транзакции, вложения, управление сеансами, шифрование и т. Д. Используя WCF, вы создаете свой сервис с перспективой на будущее, чтобы вы могли легко двигаться вверх к другим протоколам - некоторые из которых могут даже не существовать сегодня. Конечно, в будущем появятся новые технологии, и WCF несколько защитит вас благодаря своему уровню абстракции и общему API. *

Марк

2 голосов
/ 06 августа 2009

Еще один момент для потребителей веб-службы ASMX, которые когда-либо будут использовать веб-службы для платформ, должны будут реализовать стек SOAP. Если вы стремитесь к широкому охвату потребления, WCF предпочтительнее и позволит вам представить WS более универсальными способами.

1 голос
/ 05 августа 2009

Другое большое различие между этими двумя технологиями заключается в том, что Microsoft теперь считает и веб-службы ASMX, и XML Serializer «устаревшей технологией» и больше не исправляет ошибки в них.

...