2010-11-24 2 views
0

코더, 저는 자신의 CMS 프로토 타입을 설계/구현하고 있습니다 (예, 동시에). Asp.net, WCF 및 실버 라이트를 사용합니다.Asp.net + Silverlight + WCF 및 n 계층 아키텍처

프리젠 테이션 층 [실버 & Asp.net/html]> WCF> 비즈니스 로직> 데이터베이스 내 모델의 목표는 정도까지로 쉽게 만드는 것입니다

: 지금까지 나는 내 프로젝트에 대한 다음과 같은 모델을 가지고 미래의 응용 프로그램입니다. 내 WCF 서비스를 사용할 수있는 모든 응용 프로그램에서 응용 프로그램에 액세스 할 수 있습니다.

불행히도 모델을 구현하는 데 어려움이 있습니다. 그것은 나에게 나타납니다 내 솔루션의 세 가지 프로젝트가있는 경우 :

솔루션 :

  • -Asp.net [프리젠 테이션 층]
  • -Silverlight [프리젠 테이션 층]
  • -WCF [WCF를 및 비즈니스 논리]

그럼 내 프레젠테이션 계층과 내 WCF 계층에서 많은 클래스를 복제해야합니다.

다음은 시나리오입니다. 내 BL의 구현 인 WCF에 게시 클래스가 있다고 가정 해 보겠습니다. client.AddPostAsync (post parameters)와 같은 라인을 사용하여 내 서비스 레퍼런스의 클라이언트 인스턴스를 만든 후 내 PL에서 새 게시물을 추가 할 수 있습니다. 그러나 WCF 메서드를 호출하여 내 PL에서 Post 개체를 검색하려는 경우 내 WCF에서 내 Post 클래스와 완전히 동일한 복사본 인 내 PL에 Post 클래스의 구현이 이미 있어야합니다.

따라서 장기적으로 볼 때 WCF 레이어와 PL에 많은 클래스가 중복 될 것입니다. 내가 이해할 수없는 것이 있거나 아니면 내 모델에서 뭔가를 엉망으로 만들고 있다고 생각하니? 도와주세요!

+2

프리젠 테이션 계층에 서비스 참조를 추가하면 모든 데이터 계약이 생성됩니다. 다시 정의 할 필요는 없습니다. 내가 뭔가를 놓친다면 WCF 메서드의 전체 프로토 타입 프로토 타입을 줄 수 있습니까? – Andrew

답변

0

실제로 Silverlight의 WCF 서비스에서 클래스 (DataContract 특성 사용)를 복제 할 필요가 없으며 WCF 서비스에 대한 ServiceReference를 만들 때 자동으로 만들어집니다.

그들은 매우 간단하게 기본 데이터 저장 필드 클래스가 될 것이므로 어떤 논리를 필요로하는 경우 Silverlight에서 일부 기능 복제본을 만들 수 있음을 이해할 수 있습니다. 내 프로젝트에서 동일한 모델을 사용하고 있으며이 문제도 있습니다.

거대한 클래스의 중복을 피하기 위해 아키텍처를 미리 알고 계셔야합니다. WCF 상속 클래스를 DataTransferObject 패턴 클래스처럼 보이게 만드는 것이 좋습니다.

+0

한 가지는 내가 client_GetPostsCompleted (..) 메서드에서 이벤트 처리를 설정 한 후에 만 ​​클래스를 호출 할 수 있다는 것입니다. 이 올바른지? – ealshabaan

+0

내가 이해할 것 같지 않은데 더 큰 코드 스 니펫을 제공 할 수 있습니까? 호출 클래스, 어떤 호출 클래스가 무엇을 의미합니까? –

관련 문제