Создание веб-сервиса, независимого от платформы клиента - PullRequest
3 голосов
/ 27 января 2012

я делаю веб-сервис, в основном это сделано, но дело в том, [WebMethod] возвращает .net DataTable, поэтому клиент, использующий другую платформу, не сможет его вызвать, мне нужна архитектура SOA ( подробности здесь ) как будто он принимает запрос и дает ответ.Я могу использовать xml serializable классы для получения данных, но я понятия не имею, как они вписались бы. Есть идеи?

Ответы [ 4 ]

3 голосов
/ 27 января 2012

Возвращает пользовательский класс и просто использует массивы, а не списки или словари. Только что сделал это, и разработчики PHP, Java и .Net будут работать с вашим объектом.

Вы также можете выставить JSON , хотя есть способ узнать, как это сделать.

Также взгляните на Web API , вы можете использовать его вместо этого.

С другой стороны: у PHP могут возникнуть проблемы с его собственной поддержкой SOAP, которая равна 1.1, поэтому используйте привязки basichttp, иначе клиенту придется использовать NuSoap, который является SOAP 1.2.

1 голос
/ 27 января 2012

Я бы исследовал использование сервисов RESTful и возвращал данные в виде независимого от платформы формата, такого как XML или JSON, как предлагали другие.

Кроме того, обратите внимание на использование ASP.NET MVC для ваших сервисов в пользуWCF.На мой взгляд, это намного лучшая система, чем WCF:

http://iwantmymvc.com/rest-service-mvc3

1 голос
/ 27 января 2012

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

ИМХО, очень хорошей платформой OSS для этой цели является OpenRasta .

0 голосов
/ 27 января 2012

WCF может легко поддерживать сервисные интерфейсы в стиле SOAP ( basicHttpBinding ) или REST ( webHttpBinding ) с готовыми привязками. Вы, конечно, можете построить ASMX, но его использование исчезает. Я только что написал интерфейс REST / SOAP WCF, чтобы заменить устаревший ASMX, который использовал DataTables ( из-за проблем совместимости ). Теперь совместимость так же проста, как наличие HTTP-клиента или генератора классов WSDL для вашей платформы.

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