2011-03-01 1 views
1

우리는 처음부터 새로운 시스템을 구축하고 SL4, WCF RIA Services 및 EF4를 결정했습니다.비즈니스 계층 또는 wcf ria 서비스 아키텍처 방법

그래서 WCF RIA 서비스는 SL 클라이언트의 비즈니스 논리로 간주되지만 응용 프로그램의 다른 부분에서 사용할 수있는 일반 비즈니스 논리 계층으로 사용할 수 있습니다. 예를 들어 WCF RIA 서비스에는 보안이 구현됩니다 (예 : 누가 어떤 개체로 무엇을 할 수 있는지 등). 그러나이 보안 구현은 SL 클라이언트뿐 아니라 시스템의 다른 부분에서도 이루어져야합니다.

이 논리가 중복되지 않게하려면 제 생각으로 WCF RIA 서비스를 일반 비즈니스 계층으로 사용하여 시스템의 다른 부분에서 데이터 계층에 액세스해야하는 경우이 계층을 통과해야합니다.

그러나 WCF RIA를 잘 사용하고 있습니까?

감사

+0

RIA 서비스 계층은 Silverlight 클라이언트의 서비스 계층으로 만 사용하기로 결정했습니다. 시스템의 다른 부분은 다른 비즈니스 계층을 통해 데이터 계층에 액세스해야합니다. 이렇게하면 SL 클라이언트에 대한 몇 가지 사용자 정의 비즈니스 규칙을 가질 수 있습니다. – kimtiede

답변

0

은 당신이 설명하는 것은 표준 WCF RIA 패턴이며, WCF RIA 팀이 작업 할 수있는 시스템을 설계하는 방법입니다.

WCF RIA를 사용하면 EF4 엔티티에 대한 종단 간 액세스를 허용하고 RIA 서비스 인터페이스 뒤에 비즈니스 로직을 숨길 수 있습니다. 클래스 수준 (서비스 계약의 모든 메서드) 또는보다 세부적인 제어를위한 메서드 수준에서 서비스 정의 (도메인 서비스 클래스)의 엔터티에 인증 및 권한 부여 특성을 적용 할 수 있습니다.

계획에서 볼 수있는 유일한 주요 결함은 "시스템의 다른 부분에는이 계층을 통과해야하는 데이터 계층에 대한 액세스가 필요합니다."입니다. 이 단계에서 WCF RIA는 Silverlight (그리고 아마 ASP.NET MVC와 잘 맞습니까?)가 잘 작동합니다. Microsoft는 결국 모든 종류의 .NET 응용 프로그램에서 사용하도록 RIA 서비스를 확장하려고하지만이 단계에서는 실제로 Silverlight 전용입니다. 즉, Silverlight 이외의 다른 응용 프로그램과 함께 많은 WCF RIA 제품을 놓칠 수 있습니다. 그러나 나는 당신이 여전히 WCF RIA 서비스를 인증/승인 레이어를 포함한 일반 WCF 서비스로 노출 할 수 있다고 믿는다. 자동 프록시, 코드 생성 등을 놓칠 수 있습니다.

그러나 Silverlight 외부에서이 서비스 계층을 사용하는 방법은 여러 가지가 있습니다. OData 엔드 포인트 또는 SOAP/REST 서비스로 EF4 엔티티를 노출 할 수 있습니다. 이에 대한 자세한 내용은 this article을 확인하십시오.

0

큰 RIA 프로젝트에는 일반적으로 많은 모듈 (비즈니스 모듈, 라이센스, 권한 부여, 감사 모듈 등)이 있으며 분명히 다른 모듈과 SL 클라이언트간에 액세스해야하는 모듈이 있습니다. 따라서 귀하의 관심은 큰 응용 프로그램에서 올바르게 배포하는 방법에 대한 일반적인 아키텍처 측면이라고 생각합니다. 모든 .NET 프로젝트 에서처럼 다른 라이브러리 프로젝트로 모듈화 할 수 있습니다. 즉, RIA Service Class Library 프로젝트 또는 재사용 가능한 일반적인 .net 라이브러리 (예 : 로깅 라이브러리)로 적절하게 만들 수 있습니다.