2013-04-29 8 views
1

디자인 관련 질문이 있습니다. 제 3 자 서비스를 사용하는 포털을 만들고 있습니다.은 WCF 및 MVC 4 지침이 필요합니다.

나는 DLL로이 서비스를 넣을 때 내가 (서비스의 나머지 등등과 - 그 중 일부를 다른 주소로) 하나 개의 서비스에 대한 서비스의 주소를 통과 한 DLL 클래스를 초기화 한

public LogonService (string address) 
     { 
      EndpointAddress epA = new EndpointAddress (address); 
      proxyClient = new LogonServicePortTypeClient ("LogonServicePort" , epA); 
      //added this InspectorBehavior for logging and errrors 
      proxyClient.Endpoint.EndpointBehaviors.Add (new InspectorBehavior()); 

     } 

이것은 내 생성자입니다. 그런 다음 인스턴스에 모든 LogonService 기능이 노출되어 있습니다 (로그인, 로그 아웃, 새로 고침 등 - 다시 한 번이 예가 하나의 서비스 예입니다.).

이 DLL은 MVC 4 인터넷 응용 프로그램에서 사용됩니다. DLL 클래스 당 클래스를 보유하는 BusinessLogic 폴더를 추가하면 컨트롤러가 이해할 수있는 방식으로 표시된대로 서비스를 시작하고 컨트롤러에 결과를 전달합니다.

이 디자인을 쾌적하게 사용할 수있는 경우이 DLL 클래스를 초기화하고 재사용을 위해 저장하는 가장 좋은 방법은 무엇인지 알고 싶습니다.

내 오랜 질문을 요약하면 다음과 같습니다.
1. 유효한 디자인입니까?
2. 응용 프로그램 수명에서이 Dll 클래스를 초기화해야하는 위치는 어디입니까?
3. 이러한 서비스 인스턴스를 어떻게 저장합니까 (성능 존중)?
4. 마지막으로,이 디자인이 논리적이지 않은 경우 권장 디자인은 무엇입니까?

감사 길 라드

답변

2

내가 추천 우선 성 또는 유니티 같은 DI 프레임 워크를 위해 이동하는 것입니다. 클래스 초기화에 많은 어려움을 겪을 것이고, 클래스를보다 테스트 가능하게 만들 것입니다.

또한 XML (system.serviceModel 섹션 아래에 있음)에 대한 끝점 구성을 외부화하십시오. 유창한 엔드 포인트 구성이 상당히 혼란 스럽다고 생각합니다.

+0

thanks.i는 이제 Unity 프레임 워크를 확인합니다. 제 3 자 서비스도 구현할 많은 다른 고객에게 판매 할 수있는 "제품"이기 때문에 변경 될 수 있으므로 주소를 구성 파일에 넣을 수 없습니다 (따라서 주소마다 매번 다른 주소 제공). – gilad

+0

그것은 완벽한 답변이 아닙니다, 며칠 후, Unity가 Unity를 "정렬"하는 좋은 방법이라는 것을 알았습니다. Unity에게 저에게 Unity를 가르쳐 주셔서 감사합니다. – gilad

0

나는 몇 달 전에 똑같은 질문을했다. 슬프게도 나는 그것에 대해 시간을 할애 할 특권이 없었다. 당신의 디자인이 훌륭하다고 말할 수있는 한, 내가 채택한 디자인이기도합니다.

나는 귀하의 3) 질문에 관해 더 자세히 알고 있습니다. 웹 서비스를 사용하는 사용자가 적고 실제로 자주 사용하지 않는 경우가 많기 때문에 퍼포먼스에 신경 쓰지 않았습니다. 그러나 나는 그 점에 대한 누군가의 의견에 매우 흥미가있을 것이다.

나는 또한 aquaraga의 의견에 동의합니다. 구성 파일만큼 사용할 수 있습니다. 개발자가 구성의 일부를 응용 프로그램에 하드 코딩 할 때 많은 문제가 발생했습니다.

+0

응답에 감사드립니다. 구성 파일을 사용하지 않는 이유는 사용자에게 제공 업체를 선택할 기회를주기 위해서입니다.로그인 페이지에 공급자 세부 정보를 입력 할 수있는 옵션을 제공함으로써 사이트를보다 포괄적으로 테스트 할 수 있습니다. 구성 파일에 하드 코딩 된 것뿐만 아니라 여러 환경에서 사이트를 테스트 할 수 있습니다. – gilad

관련 문제