2013-03-24 1 views
0

IIS에서 호스팅되는 서비스를 만들어야합니다. 이 서비스에는 string 유형의 매개 변수 하나가있는 함수가 있습니다. 이 함수는 Json 데이터를 수신합니다. 이 서비스를 사용할 클라이언트는 다음과 같은 URL로이 서비스 메소드에 액세스 할 수 있어야합니다.json을 받고 데이터베이스에 항목을 추가하는 WCF 서비스

http://[local]host/Myservice/mymethod 

새로운 서비스입니다. 내가 asp.net 4.0 VS 2010를 사용하고하는 것은 나의 질문은 다음과 같습니다

  1. 내가 SOAP 서비스 또는 WCF 서비스를 생성해야 내가 사용자 WCF에 필요한 경우

  2. (나는 WCF는 SOAP 수없는 가정) 어떤 유형의 WCF 서비스를 제공합니까? REST 서비스, 데이터 서비스 (아마도 JSON 서비스 일 수도 있음)와 같은 몇 가지 유형의 WCF 서비스가 있음을 알 수 있습니다.

  3. 이 템플릿을 사용하여 WCF 서비스를 만들었습니다. 이걸 사용하는 것이 좋습니다 : http://visualstudiogallery.msdn.microsoft.com/fbc7e5c1-a0d2-41bd-9d7b-e54c845394cd 데이터 계약 등을 만들 필요가 없기 때문에 또는 http://www.dotnetspark.com/kb/3189-create-rest-service-wcf-40-step-by-step.aspx이 web.config를 변경하고 수동으로 끝점을 변경할 필요가 없기 때문에이 기사가 될 수 있습니다.

  4. 이 서비스 메서드는 json.net을 사용하여 json을 구문 분석하고 일부 값을 가져온 다음 데이터베이스에 추가하고 전자 메일을 보냅니다. WCF 데이터 서비스가 필요하다는 의미입니까?

좋습니다.

감사합니다, 우선

+2

틀렸어 - WCF가 시작되었고 ** SOAP ** 영역 (여전히 'webHttp' **를 제외한 모든 바인딩은 ** SOAP 기반 바인딩 임)에서 매우 강하다. –

+0

@marc_s, Thanks. 요구 사항에 어떤 서비스 (웹 또는 WCF)/바인딩 (웹 또는 기타)을 사용해야합니까? – DotnetSparrow

+0

Juval Lowy는 자신의 기사에서 바인딩을 선택하는 방법에 대한 도표 (http://www.code-magazine.com/article.aspx?quickid=0605051&page=3)를 가지고 있지만' webHttp' 바인딩이 필요합니다. SOAP은 수행하려는 작업과 같은 트랜잭션 작업에 적합하지만 덜 널리 사용 가능합니다. 모바일 장치 (전화, 태블릿 등)를 클라이언트로 지원해야하는 경우 HTTP/REST 바인딩을 사용하는 것이 좋습니다. –

답변

1

잘 아시프 하미드 - WCF 는 SOAP 지역에서 매우 강한입니다, 사실, 처음에 독점적으로 SOAP 기반 바인딩을 지원했다.

서비스와 메소드를 "자동 검색"할 수 있기를 원하면 SOAP가 강력한 경쟁자입니다. SOAP은 WSDL 및 XSD 표준을 사용하여 잘 정립 된 메타 데이터 시스템을 가지고 있으므로 클라이언트는 기본적으로 서비스 위치를 가리키고 해당 서비스가 할 수있는 작업과 필요한 매개 변수에 대한 전체 설명을 얻을 수 있습니다. 또한 : SOAP 을 기반으로합니다. x 메소드 메타포를 사용하는 서비스가 있습니다. 따라서 서비스 메소드와 매개 변수가 주요 항목으로 디자인됩니다.

SOAP는 다소 덜 널리 사용 가능합니다. 대부분의 데스크톱 시스템에서 사용할 수 있지만 휴대 전화 및 태블릿과 같은 대부분의 휴대 기기에서는 사용할 수 없습니다.

여기가 REST가 빛나는 곳입니다. HTTP 만 사용하기 때문에 도처에이 있으므로 더 많은 고객에게 다가 갈 수 있습니다. 또한 JSON을 특별히 사용하고있어 서비스가 단순한 매개 변수 인 단일 호출 인 것처럼 보이기 때문에 REST에 더 적합 할 수 있습니다 (WCF webHttpBinding 또는 ASP.NET 기반 서비스 웹 API).

참고 : REST는 근본적으로 리소스을 기반으로합니다. 당신은 REST에서 메소드와 메소드 매개 변수에 대해 이야기하지 않고있다. 그래서 다양한 HTTP 동사 (GET, PUT, POST, DELETE)를 사용하게되며, 말하는 URI는 리소스 (무엇이든지간에)을 나타냅니다.

시스템을 과 같은 모델로 만들 수 있다면 새 리소스 (새 데이터베이스 레코드와 같은)을 게시 중이므로이 경우 REST를 사용할 수 있습니다. 데이터베이스에 새 행을 추가하려면 리소스 컬렉션을 나타내는 URI에 POST 호출을 수행해야합니다.

POST /host/app/MyResourceCollection 

실제로 HTTP 호출의 게시 본문에 새 행을 만드는 데 필요한 데이터를 제공하십시오.

그래서 귀하의 요구 사항 충돌 비트 :

    는 서비스 방식을 가지고있는 아이디어는 SOAP에 더 적합한 것 같다
  • JSON은

나는 것 REST 더 적합한 사용하는 아이디어 이 뛰어난 MSDN 문서 An Introduction To RESTful Services With WCF을 Jon Flanders가 읽으면서 REST가 무엇인지와 사용법을 더 잘 이해할 것을 권장합니다. 그것이 귀하의 필요에 맞는 것인지 확인하고, 동의한다면 시도하고, 시도하고, 그것이 어떻게 작동하는지 경험하십시오.

+0

세 번째 단락은 말합니다. 반면에 SOAP는 다소 덜 널리 사용 가능합니다. 대부분의 데스크톱 시스템에서 사용할 수 있지만 실제로 휴대 전화 및 태블릿과 같은 대부분의 휴대 기기에서는 사용할 수 없습니다. 비누 대신 WCF를 의미합니까? – DotnetSparrow

+0

@DotnetSparrow : 아니요, SOAP 클라이언트가 작동 할 수 있도록 필요한 프로토콜에서와 마찬가지로 ** SOAP **을 말합니다. WCF는 SOAP 프로토콜을 사용하는 제품 중 하나 일뿐입니다. –