2012-01-27 3 views
3

대부분 웹 서비스를 만들고 있지만 대부분은 완료되었습니다. [WebMethod]은 .net DataTable을 반환하므로 다른 플랫폼을 사용하는 클라이언트는이를 호출 할 수 없으므로 아키텍처가 필요합니다. SOA (details here)처럼 요청을 받고 응답을합니다. 나는 데이터를 얻으려면 xml serializable 클래스를 사용할 수 있지만 어떻게 될지 전혀 모릅니다. 어떤 아이디어입니까?클라이언트 플랫폼 독립적 인 웹 서비스 만들기

+0

데이터를 JSON 형식으로 반환하면 어떻게됩니까? – MUS

+5

.NET 2.0을 사용하는 경우가 아니면 ASMX 웹 서비스를 사용하지 않아야합니다. 새로운 개발에는 모두 WCF를 사용해야합니다. –

+0

JSON은 xml을 선호 할 것입니다. 어쨌든 어떻게하면 문자열을 반환할까요? – PUG

답변

3

맞춤 클래스를 반환하고 배열이나 사전은 사용하지 않고 목록 만 사용하십시오. 바로 PHP와 Java, 닷넷 개발자들이 당신의 객체를 다루기에 충분할 것입니다.

expose JSON도 할 수있는 방법이 있습니다.

또한 Web API을 살펴보고 대신 사용할 수도 있습니다.

다른주의 사항 : PHP는 기본 SOAP 지원 1.1에 문제가있을 수 있으므로 basichttp 바인딩을 사용하거나 클라이언트가 SOAP 1.2 인 NuSoap을 사용해야합니다.

1

가능한 한 다양한 클라이언트에 HTTP 서비스를 노출하려면 SOAP 기반 메시징을 모두 삭제하고 데이터를 XML, JSON 및/또는 원하는 다른 모든 콘텐츠 유형으로 표시하는 것이 좋습니다. 스키마에 따라 을 정의하여 데이터를 정의하십시오.

IMHO,이 목적을위한 매우 훌륭한 OSS 프레임 워크는 OpenRasta입니다.

1

RESTful 서비스를 사용하여 XML 또는 JSON과 같은 플랫폼에 독립적 인 형식으로 데이터를 반환하는 방법을 살펴 보겠습니다.

또한 ASP.NET MVC를 사용하여 서비스에 WCF를 사용하십시오. 그것은 내 의견으로는 WCF보다 훨씬 더 나은 시스템입니다 :

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

0

WCF 쉽게 아웃 - 오브 - 박스 바인딩 SOAP (basicHttpBinding) 또는 REST (webHttpBinding) 스타일 서비스 인터페이스를 지원할 수 있습니다. 확실히 ASMX를 구축 할 수 있지만 사용법은 죽어 가고 있습니다. 방금 DataTables (때문에 상호 운용성 문제로 인해) 사용하던 레거시 ASMX를 대체하기 위해 WCF REST/SOAP 인터페이스를 작성했습니다. 이제 상호 운용성은 플랫폼에 맞는 HTTP 클라이언트 또는 WSDL 클래스 생성기를 갖는 것만 큼 간단합니다.

관련 문제