Звонок в WCF от Delphi 5 - PullRequest
       1

Звонок в WCF от Delphi 5

2 голосов
/ 23 марта 2011

У нас действительно старое приложение. Это на блоке, который будет переписан. Но так как это очень сложно, переписывание откладывается.

Теперь мне нужно знать, есть ли способ заставить приложение Delphi 5 вызывать веб-службу WCF?

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

Ответы [ 3 ]

5 голосов
/ 23 марта 2011

Вы можете общаться с веб-сервисами WCF, используя SOAP через HTTP. Delphi 5 в некоторой степени поддерживает SOAP, но, по моему опыту, его ранняя реализация не особенно совместима с .NET 2.0 (или выше) WSDL. Возможно, вы захотите попробовать импортировать WSDL и посмотреть, что с ним делает Delphi, но я не оправдаю ваши надежды.

Если это не сработает, то под всем этим - просто набор веб-запросов, поэтому теоретически возможно выполнить то, что вы просите, используя собственные процедуры маршаллинга (например, поверх Indy HTTP). Вопрос в том, насколько легко будет маршалинг ваших запросов + ответов в структуры данных, которыми вы можете манипулировать в Delphi 5?

Альтернативной стратегией, которую вы могли бы рассмотреть, было бы написание прокси / оболочки на подходящем языке (т.е. что-то .NET) и предоставление более дружественного Delphi-5 интерфейса.

2 голосов
/ 26 марта 2011

Delphi 5 не поддерживает вызов веб-сервисов из коробки, так как эта функция была представлена ​​в Delphi 6.

Поддержка веб-сервисов Delphi была обновлена ​​в эпоху Delphi 2005/2006, чтобыбыть совместимым с более новыми версиями SOAP (используемыми, например, в .NET 2.0 и более поздних версиях).

RemObjects имеют альтернативную реализацию для веб-сервисов в Delphi (и намного больше средств связи), но они не поддерживаютDelphi 5.

Delphi 5 может выполнять HTTP-запросы и использовать XML, поэтому вы можете создавать свои собственные вещи на основе этого.Это займет не менее нескольких дней, если не недель, чтобы сделать это в общем виде, но конкретное решение, которое работает только для одного вызова веб-службы, может быть реализовано в более короткие сроки.

1 голос
/ 23 марта 2011

Веб-сервисы WCF - это просто веб-сервисы, верно?Учитывая, что ваш сервис WCF использует http для транспорта, вы должны иметь возможность обращаться с ним как с любым другим веб-сервисом.На самом деле, даже если речь идет о передаче SOAP, REST или других форматированных сообщений, не имеет смысла.Если Delphi 5 может вызывать веб-службу, она должна иметь возможность вызывать службу WCF.

Если у вас есть веб-служба, история, очевидно, становится еще лучше.

...