Убедительное управление для использования WCF - PullRequest
2 голосов
/ 29 марта 2010

Я задал еще один вопрос о том, что я не могу использовать WCF в новом проекте веб-службы, и пришел к выводу, что это технология, которую следует использовать в отношении расширяемости и безопасности.

У меня простой вопрос:

Как я могу убедить руководство (и разработчиков в этом отношении) перейти к использованию WCF в отличие от других технологий веб-служб (ASMX / CFC)? Их не будет интересовать сравнение между типы (особенно в отношении ASMX), просто то, что можно получить.

Ответы [ 5 ]

8 голосов
/ 29 марта 2010

Обычный ASMX вообще не поддерживает WS-Security или любые другие расширения WS- *. Для их реализации вам необходимо использовать улучшения веб-служб Microsoft (WSE).

WSE - это решение с временным отключением, которое Microsoft реализовала на скорую руку, чтобы удовлетворить потребность веб-служб .NET в соответствии со спецификациями WS- *. WCF - это не просто обновление до этого, это полная замена . Из-за этого WSE (и впоследствии ASMX, если вы хотите использовать протоколы WS- *) официально является неподдерживаемым продуктом .

Итак, хочет ли ваше руководство начать новый проект с использованием официально неподдерживаемого продукта?

Вот все, что вы не получите с WSE:

  • Техническая поддержка. Возможно, кто-то из Stack Overflow может помочь вам, но Microsoft не может.

  • Исправлены ошибки. Интеграция Visual Studio с WSE 3.0 (последняя выпущенная версия) не работает в Visual Studio 2008. Она также не работает в Visual Studio 2005, если вы используете Vista x64 или Windows 7.

  • Новые функции. WCF предлагает улучшения производительности, протоколы REST, очереди сообщений, двоичную сериализацию по TCP / именованным каналам, службы данных WCF (Linq через веб-службы) и целый ряд новых возможностей. Вы никогда не получите ни одного из них с помощью WSE / ASMX.

  • Интеграция с Active Directory. О, конечно, это «работало» в WSE с использованием утверждения kerberos - очень и очень плохо. WCF настолько легко интегрируется с Active Directory, что по умолчанию он защищен .

  • Неисправности контрактов. Обработка исключений в WSE / ASMX brutal , все выглядит как SoapException или ResponseProcessingException. С помощью WCF вы действительно можете отправлять обратно типизированные исключения (ошибки) обратно клиенту.

  • Обратный звонок. Хотите начать длительную операцию на стороне клиента и получать уведомления о завершении / обновлении статуса с сервера? Жесткий - надеюсь, вам нравится писать циклы опроса.

  • Взаимодействие с новыми технологиями. Иногда вы можете заставить службу WSE 3 общаться с WCF или службой Java, но с некоторыми затруднениями, но не обязательно наоборот. И если вы используете версию WSE до 3.0, забудьте об этом. В отличие от этого, WCF смог поддержать Azure и MSMQ с несколькими тривиальными изменениями конфигурации.

Запуск нового проекта с использованием ASMX / WSE эквивалентен запуску нового проекта на платформе .NET 1.1. Ваш продукт будет «унаследован» до того, как будет написана первая строка кода.

Если ваше руководство понимает термин «устаревшие технологии», и я подозреваю, что они понимают, вы, возможно, захотите немного обойти это. Также "устарел". Также "не поддерживается".

WCF существует уже 4 года. Этого более чем достаточно для выявления серьезных проблем в дикой природе. Нет никаких оснований не доверять ей как технологии.

И действительно, WSE 3 был выпущен в конце 2005 года, так что он не намного старше, чем WCF! Нелогично доверять технологии 5-летней давности, а не технологии 4-летней давности, особенно когда 2 года назад была прекращена поддержка 5-летней технологии.

3 голосов
/ 29 марта 2010

Преимущества действительно зависят от вашего конкретного сценария, но в целом их много.

WCF был разработан для обслуживания сервисов с самого начала и делает это очень чисто. В нем устранены многие недостатки других технологий. Основные отличия заключаются в гибкости, которую приносит WCF.

Например, довольно легко создавать сервисы RESTful с использованием ASMX или WCF. Однако, если вам позже потребуется добавить SOAP, преобразование, более сложную аутентификацию, некоторую асинхронную связь с расширенными клиентами и т. Д., Вы можете легко перенастроить и адаптировать приложение службы WCF для соответствия. С предыдущими технологиями вы бы застряли, делая ре-архитектуру или переписывание.


В ответ на ваш комментарий о безопасности я бы порекомендовал прочитать в MSDN Модель безопасности WCF . На самом деле он намного превосходит все более старые технологии Windows для архитектуры сервисов, поэтому, если безопасность - в центре внимания, то WCF определенно подходит.

Это особенно верно, если вы имеете дело с несколькими источниками аутентификации. Модель аутентификации WCF основана на стандартах, но расширяема. Гораздо проще реализовать безопасный сервис, к которому можно получить доступ через несколько форм аутентификации, особенно если вам необходимо интегрировать его с другими сервисами аутентификации.

1 голос
/ 30 марта 2010

Microsoft теперь считает ASMX «устаревшей технологией». Спросите у руководства, стоит ли начать с устаревшей технологией.

0 голосов
/ 29 марта 2010

WCF обеспечивает SOA -

  • Гарантированная доставка сообщений
  • Транзакции
  • Сериализация в двоичный файл
  • Совместимость
  • Расширяемость

Самый большой бонус для меня: надежность как при доставке, так и при совершении транзакций.

Лучше всего остаться с проверенной, проверенной и хорошо понятой технологией - будет курс обучения слюбая новая технология как для нас, разработчиков, так и для развертывания, поддержки и т. д.

WCF лучше, намного лучше, но никогда не забывайте об этом при рассмотрении любой новой технологии или методологии.

0 голосов
/ 29 марта 2010

Вы не можете реально заявить, что можно получить, по крайней мере, косвенно сравнив два типа - иначе у вас нет базовых данных о том, что улучшения.

Как правило, WCF даст вам следующее:

  • Не ограничивается SOAP. Это может сделать услуги намного проще для потребления и намного, намного более производительными. Это, наверное, самый большой на мой взгляд, как разработчик ASP.net.

  • Производительность. WCF может быть намного быстрее.

  • Служба WCF может содержать все, поэтому вы не ограничены IIS. Предоставляет вам гораздо больше гибкости в вашей архитектуре.

Лучшее, что вы можете сделать, это прочитать документацию MSDN, поскольку Microsoft активно использует WCF над ASMX и предоставила множество документов, касающихся преимуществ. Начните здесь: различия между ASMX и службами WCF .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...