2012-11-20 3 views
2

나는 인터넷, 여러 권의 책을 샅샅이 뒤졌으며 일부 동료와상의했습니다. 내가하려고하는 것이 나쁜 습관인지 아닌지는 언급하지 않습니다. 짧은; 나는 그저 클라이언트로부터 불을 피고 잊어 버리고있다.WCF 서비스 구현

[ServiceContract] 
public interface ICustomerInformation 
{ 

     [OperationContract(IsOneWay = true, IsTerminating = true, IsInitiating = false)] 
     ICustomerAccount GetCustomerDetails (string First); 

} 

[DataContract] 
public interface ICustomerAccount 
{ 
     _firstName = firstName; 

     [DataMember] 
     string FirstName 
     { 
      get { return _firstName; } 
      set { _firstName = value; } 
     } 
} 

원래의 생각은 속성을 추상화 한 것과 비슷한 구현이었습니다. 서버에 연결된 서버 및 응용 프로그램은 이러한 속성을 사용할 수 있습니다. 하지만 정말 똑똑한 일입니까? 또는 심지어 좋은 연습?

내 가정은; 이 계층을 서비스에 추가함으로써 서비스에 액세스하는 사용자 인터페이스가 단순히 데이터를 푸시 할 수있게합니다. 기능이 데이터에 곧바로 연결될 수 있습니다. 따라서 사용자 데이터가 변경되면 서버의 기능에 맞게 서비스가 변경됩니다.

보기 좋지 않은가요? 아니면 이것을 시도할까요? 나는이 해석을 잘못 알고 있습니까?

내가 위에서 말한 것; 목표는 여러 스타일의 인터페이스가 데이터를 서비스에 전달하는 논리적 인 추상화입니다. 그러면 서비스가 입력을받습니다. 이러한 가변 입력 값을 기반으로 함수를 수행합니다.

내가 잘못 말하면 편집 해 줄 수 있도록 알려주세요. 더 나은 설명 수단을 생각해보십시오. 어떤 도움이라도 좋을 것입니다.


업데이트 : 보편적 인 인터페이스를 만들려고 해요

; 여기서 해당 애플리케이션 또는 클라이언트 인터페이스는 데이터를 입력합니다. 일단 데이터가 서비스에 제출되면; 서버가 가져옵니다. 데이터를 반환 할 필요가 없습니다. 서버는 클라이언트 측 정보를 활용하는 명령을 통해 실행됩니다.

본질적으로 데이터를 보편적으로 서버의 서비스를 통해 밀어 넣으려고합니다. 클라이언트는 수행중인 서버 태스크를 인식 할 필요가 없습니다.

제 생각에는 프로세스를 통해 UI/사용자 입력을 논리적으로 분리하는 것이 었습니다. 서비스는 사용자로부터 수집 한 정보로 서버 측 기능을 호출합니다.

예 : 텍스트 상자 (이름) -> 서비스 -> 서버는 일련의 작업을 수행하기 위해 이름을 변수로 저장합니다. 데이터베이스에 이름 쓰기, 사용자 이름으로 이름 텍스트 파일 등을 저장합니다.

+1

어디에서 데이터를 푸시하고 어디에서 수신되고 있는지 (그리고 다시 브로드 캐스트 될 수있는 위치)에 대해 명확히 할 수 있습니까? 또한 속성 이름이나 그와 비슷한 것을 전달하는 것과 같이 동적 인 작업을하려고합니까? – casperOne

+0

코드가 컴파일 될 것으로 생각하지 않습니다. 인터페이스에는 필드를 사용할 수 없습니다. 또한 DataContractSerializer가 계약을 deserialize하려고 시도하고 클래스 정의를 결정할 수 없을 때 런타임 오류가 발생할 수 있습니다. 인터페이스는 DataContracts로 사용하면 안되며 클래스 만 사용해야합니다. –

+0

@ JoshC.; 인터페이스와 관련된 직렬화 문제를 DataContracts와 같이 처리 할 수있는 방법이 있습니다. http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceknowntypeattribute.aspx –

답변

3

정확하게 이해하면 어떤 종류의 메시지/명령 전달 모델을 구현하려는 것 같습니다.이 모델은 완전히 합법적 인 것으로 보입니다. 예를 들어 명령을 아키텍처 패턴으로 활용하는 방법에 대해 이야기하는 경우를 보려면 this article을보십시오. 이러한 명령은 클라이언트에서 WCF (WCF) 서비스로 와이어를 통해 직렬화 할 수 있으므로 유지 관리가 용이 ​​한 서비스 계층을 만들 수 있습니다 (explained here). 원래의 질문으로 돌아 가자. 예.이 모델은 합법적 인 모델처럼 보입니다. 나는 그 기사를 읽을 것을 권고하지만. 당신에게 이런 종류의 모델에 대한 배경 지식을 줄 수 있습니다.