Что ж, если вы сократите обсуждение только до 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. *
Марк