Что особенного в услугах ASMX

Я работаю с веб-сервисами уже более 2 лет. Мне есть что сказать о таких сервисах, как Soap 1.2, WSDL, о том, как происходит общение, и о сотне других вещей.

Я видел, как люди говорили о своем тяжелом опыте работы с ASMX и опыте работы с веб-сервисами. Но когда дело доходит до реализации, я не нахожу ничего, кроме добавления веб-ссылки и вызова нескольких методов из С#. Все, о чем мы говорим (сериализация, десериализация, мыло и прочее), заботится о Microsoft внутри компании.

Поэтому я хочу знать, это все, что нам нужно делать при работе с веб-сервисами, или есть что-то еще?

Перефразируя: я хочу знать, что эксперт ASMX должен знать об этих сервисах.

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


person noob.spt    schedule 13.10.2009    source источник


Ответы (3)


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

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

  • Плюсы и минусы использования сервисов в вашей архитектуре (соображения производительности, проблемы с версиями, синхронность и асинхронность и т. д.)
  • Причины, по которым вы хотели бы использовать ASMX вместо WCF
  • Внутренняя реализация протокола SOAP, как можно использовать заголовки SOAP для обеспечения безопасности и т. д.
  • Знание «внутренностей», чтобы вы могли потенциально предоставлять услуги для использования клиентами, отличными от Microsoft (java и т. д.)
  • Особенности WSE, включая разные версии
  • Проблемы безопасности — как защитить доступ к сервису и как защитить данные, передаваемые туда и обратно
person Guy Starbuck    schedule 13.10.2009
comment
Спасибо Гай. Хорошо, давайте пока не будем говорить здесь о WCF (это будет еще одна большая тема). Для ASMX знание внутреннего устройства или протоколов SOAP дает вам преимущество в обсуждениях или производит впечатление на менеджера или клиента, но сколько из этого мы действительно используем или должны знать? Единственным аспектом службы ASMX, который я подробно затронул, была безопасность на основе сертификатов. - person noob.spt; 13.10.2009
comment
Конечно, сколько вам нужно знать, зависит от того, что вы пытаетесь сделать. Если вы просто хотите разрабатывать веб-службы и работаете в среде, в которой уже настроены протоколы, вы, вероятно, хорошо знаете, что делаете сейчас. Если вы хотите спроектировать SOA-системы или занимаетесь продвижением их использования перед клиентом или менеджером, вам нужно знать больше. - person Guy Starbuck; 13.10.2009
comment
Что ж, на сегодняшний день я всего лишь придерживаюсь своего собственного разработчика. Но я хочу знать, что нужно, чтобы стать архитектором. Не могли бы вы рассказать мне о некоторых реальных проблемах и о том, какие решения придумали люди? Но опять же, я не хочу углубляться в SOA, я ищу скрытые методы ASMX, которые использовались для обработки таких ситуаций. Я надеюсь, что это имеет смысл. - person noob.spt; 13.10.2009

Если вы хотите считать себя экспертом в ASMX, вам нужно понимать класс SoapExtension и связанный с ним класс SoapExtensionAttribute. Я не считаю необходимым понимать SoapExtensionImporter и SoapExtensionReflector.

Вы также должны понимать сериализацию XML, поскольку именно она используется для сериализации и десериализации между объектами и SOAP в службе ASMX.

Вы также должны понимать, что Microsoft теперь считает веб-службы ASMX «устаревшей технологией» (ссылка по запросу).

person John Saunders    schedule 14.10.2009
comment
@John: Рад узнать, что ты на этом форуме. Спасибо за ваш вклад. Также как-то сегодня после этого вопроса я наткнулся на интересное требование в своем проекте. Открытие нового вопроса для этого. Угадайте, теперь я буду изучать внутренние подробности ASMX. - person noob.spt; 14.10.2009
comment
+1.. еще недостаточно репутации для VoteUp. Обязательно сделаю это позже :) - person noob.spt; 14.10.2009

Я бы сказал, что простое знание основ ASMX и/WCF не делает вас экспертом с точки зрения веб-сервиса.

Это правда, что обо всей сантехнике позаботились, но вам обычно приходится возвращаться к ней в тот или иной момент. Всегда очень легко подключить asmx к asmx, wcf к wcf, axis2 к axis2... Но как только вы начнете связывать их вместе, начнут проявляться проблемы. Вы когда-нибудь работали над проектом с использованием веб-сервисов, где в какой-то момент у вас возникали проблемы со сгенерированным WSDL или сгенерированным прокси?

Я бы сказал, что кто-то, кто утверждает, что является экспертом asmx, не должен удивляться, если вы начинаете говорить о мыле 1.1 и 1.2, базовом профиле WS, WS-* и обо всех тех вещах, которые на первый взгляд кажутся абстрагированными. но к которому вам придется вернуться в какой-то момент.

person Philippe    schedule 13.10.2009
comment
Спасибо, Филипп. Совместимость, безусловно, имеет смысл и может быть сложной задачей. Не могли бы вы указать мне какое-то конкретное направление или ссылку, в которой подробно объясняются эти вопросы? У меня никогда не было проблем при создании WSDL. Мой клиент использует JAVA и различные другие платформы, но почему-то у меня никогда не было проблем с совместимостью. Если вы можете предоставить мне ссылку, где люди сталкивались с подобной проблемой или рассказываете о том, как решать такие проблемы. Куда нам может понадобиться обратиться в деталях профилей SOAP и WS? - person noob.spt; 13.10.2009