2011-02-16 3 views
0

기본 .Net 클라이언트 응용 프로그램 및 다른 클라이언트 유형이 서비스와 통신 할 수 있도록 WCF 서비스 계층을 만드는 좋은 방법은 무엇입니까?.Net 및 기타 클라이언트의 WCF?

알고 계시 겠지만 앞으로는 모바일 장치를 지원해야 할 것입니다.

우리는 비슷한이 우리의 WCF 방법으로 개체를 전달하는 :

[DataContract] 
    public class User: DomainBase 
     { 
      [DataMember]   
      public string Username { get; set; } 
      [DataMember] 
      public string Password { get; set; } 
      [DataMember] 
      public string FirstName { get; set; } 
      [DataMember] 
      public string LastName { get; set; } 
} 

그래서 이런 우리의 servcie의 방법이있을 수있다 :

public bool Save(User item){ 
    ...do some work 
} 

public User GetUserByUsernameAndPassword(string username, string password){ 
    ...do some work 
}  

이제 닷넷에서 내가 사용할 수 있습니다 내 서비스와 동일한 개체 라이브러리이지만 다른 클라이언트와는 연결할 수 없습니다. 그래서, 각 클라이언트 유형에 대해 differnt 메소드를 작성하고 싶지 않은 경우이를 처리하는 가장 좋은 방법은 무엇입니까?

답변

1

다른 클라이언트와의 상호 운용성은 실제 계약서의 바인딩에 더 달려 있다고 생각합니다. 지원할 다른 클라이언트 및 클라이언트 언어가 SOAP을 수행 할 수있는 경우 BasicHttpBinding을 사용하면 최상의 지원을 제공합니다. 예를 들어 .NET 2를 사용하는 클라이언트는 여전히 .NET 3.5 WCF 서버와 상호 작용할 수 있습니다. Java 및 기타 언어 용 SOAP 라이브러리도 있습니다.

서버가 WSDL을 게시하기 만하면 클라이언트는 WSDL의 모든 언어에서 자동으로 모든 계약 인터페이스와 유형을 생성 할 수 있습니다. 이는 데이터 계약 유형의 '재사용'을 처리합니다.당신은 떨어져 SOAP에서 감행하려는 경우

는 REST 또는 WCF와 일반 된-XML 또는 JSON을 할 수있는 방법이 있습니다,하지만 ...

+0

저는 과거 Java 기반 클라이언트로 작업하면서 basicHttpBinding을 사용해야 만한다는 것을 알고 있습니다. 다른 것은 효과가 없을 것이다. – DDiVita

1

다른 클라이언트에 대해 지금 당장 완벽하게 작동해야합니다. 문제가 있다고 생각하게 만드는 원인은 무엇입니까?

+0

음을 서버 측에서 훨씬 더 복잡해진다, I 많은 다른 클라이언트 유형으로 놀지 않으며 의견을 얻고 싶었다. 나는 데이터 객체의 표현이 염려 스럽네요. XMLHTTPRequest를 사용하는 클라이언트가 한 명 있고 .Net이 또 하나 이야기하고 있다고 가정 해 봅시다. SOAP 봉투를 전달하고 싶지는 않지만 JSON이 HTTP 요청에 잘 작동 함은 물론 .Net 앱이 actaul 객체를 전달하기를 원합니다. ym 서비스에서 jsut 한 가지 방법으로 모든 작업을 수행 할 수 있습니까? XMLHTTPRequest에 어떤 종류의 바인딩이 필요합니까? – DDiVita

+0

@DDiVita : 당신은 이해하지 못합니다. SOAP가 표준입니다. 그것은 "효과가있을 것"입니다. .NET 클라이언트조차 표준 프로토콜을 사용하여 데이터에 액세스합니다. –

+0

당신 말이 맞아요. 나는 이것을 생각하고 있을지도 모른다. 난 당신이 작업에 넣을 수있는 요청 유형 특성에 대해 많이 읽고 그 날을 던질 수 있습니다. 감사! – DDiVita

1

지원하는 바인딩에 따라 다릅니다. 특정 바인딩은 .NET에서만 작동합니다.

  • BasicHttpBinding : HTTP를 통한 SOAP. 모든 SOAP 클라이언트가 연결할 수 있습니다.

  • WsHttpBinding : - BasicHttpBinding과 동일합니다. 간단히 말해 HTTP를 통한 SOAP를 으로 사용합니다. 그러나 그것도 함께 신뢰할 수있는 메시지 전송, 보안 및 트랜잭션을 지원합니다. WS-Reliable WS-Security의 메시징, 보안, 및 WS-Atomic과의 트랜잭션 트랜잭션은 신뢰할 수있는 메시지를 지원합니다.

  • NetTcpBinding : - 직접 TCP를 통해 신뢰할 수있는 메시지 전송, 보안 및 거래에 대한 지원 등이 결합 보내는 이진 인코딩 SOAP, . NetTcpBinding 의 가장 큰 단점은 서버와 클라이언트 모두 도 .NET 언어로 작성되어야한다는 것입니다.

  • NetNamedPipesBinding : -Th 바인딩 이름이 인 이진 코드 SOAP을 보냅니다. 이 바인딩은 동일한 Windows 기반 컴퓨터에서 프로세스 간의 WCF-to-WCF 통신에 대해서만 을 사용할 수 있습니다.

+0

첫 번째 문장을 수정하고 downvote를 제거합니다. –