3

3 레이어 응용 프로그램으로 설계된 XBap 시스템이 있습니다. XBap 클라이언트는 netTcpBinding을 사용하여 WCF 서비스를 통해 논리를 사용합니다.Silverlight 응용 프로그램에서 기존 비즈니스 논리를 소비하는 방법은 무엇입니까?

쉽게 데이터 바인딩이 가능하고 내 비즈니스 객체에 내장 된 데이터 유효성 검사를 다시 사용할 수 있기 때문에 프록시를 생성하는 대신 xBap 클라이언트에서 비즈니스 객체 라이브러리를 참조하도록 선택했습니다.

이 개체는 기본 데이터 유효성 검사 이외의 다른 논리를 구현하지 않습니다. 실제 비즈니스 논리는 내 WCF 서비스 내에서 구현됩니다.

이제 큰 도전에 직면 해 있습니다. xBap을 실버 라이트로 포팅해야하므로 실버 라이트 앱이 필요합니다. (winforms LOB 응용 프로그램에서도 사용되는) 동일한 비즈니스 논리를 사용합니다.

1)가 정규 DLL이 아닌 실버 하나로 컴파일 있기 때문에 비즈니스가 실버 라이트 클라이언트 응용 프로그램에서 개체 라이브러리를 참조 할 수 없습니다 발생

일부 문제.

2) 나는 functionallity를 많이 잃어 버렸기 때문에 실버 라이트 라이브러리로 컴파일 할 수 없으며 분명히 좋은 아이디어는 아닙니다. 미래에 새로운 .net 플랫폼이 생기면 수정 된 (silverlight) dll이 작동한다는 보증이 없습니다.

RIAServices를 발견했을 때 나는 희망이있었습니다. 나는 어딘가에서 서비스를 구현하고 DAL을 사용할 수있는 곳을 읽었다. (나는 하나의 사용자 정의가 있음)하지만 기존 비즈니스 계층 위에 RIAServices를 배치하는 방법을 보여주는 예제는 발견하지 못했습니다. 우리가 LINQ를 사용하지 않는다고 말할 필요가 있습니다. 모든 예제에서 RIAServices를 사용하고 LINQ를 사용하여 처음부터 비즈니스 로직을 작성하기 시작했습니다.

RIAServices는 데이터 바인딩이 가능한 클라이언트 코드를 생성하지만 전체 비즈니스 계층을 변경해야한다는 느낌이 들며 비용이 많이 듭니다.

따라서 솔루션은 WCF를 계속 사용하는 것으로 보입니다. 특히 silverlight 3.0이 새로운 바이너리 바인딩을 지원하고 실제 비즈니스 개체 대신 프록시로 작업하기 때문입니다. 문제는 이러한 프록시에는 데이터 유효성 검사, 속성 변경 알림 및 변경 내용 추적, 즉 비즈니스에 필요한 3 가지 측면이 포함되지 않는다는 것입니다.

RIAServices는 이러한 측면 및 기타 측면을 해결하지만 Silverlight 프로젝트와 함께 작동하는 데 필요합니다. WCF (SVCUtil.exe)는 프록시를 생성하지만 우리의 필요에 '완전하지 않습니다. 그래서 저는 비즈니스 객체를 입력으로 사용하는 프록시를 생성하기위한 자체 유틸리티를 개발해야 할 것 같습니다.

나는 이렇게하기 시작하기 전에 누군가가 이미이 문제에 직면 해 있고 그것을 편리하고 고통없이 해결할 수 있었는지 알고 싶습니다. 사전에

감사합니다,

곤잘로

답변

1

확인이 블로그 게시물 및 샘플 - Business Apps Example for Silverlight 3 RTM and .NET RIA Services July Update: Part 8: WCF Based Data Source.

Silverlight 클라이언트에 작업 및 모델을 노출하고 .NET WIA 서비스에 대해 작동하는 .NET RIA Services를 사용하여 DomainService를 작성하는 것을 보여줍니다.

비즈니스 로직을 변경할 필요가 없습니다. 계층으로서의 DomainService는이를 재사용 할 것이며 Silverlight 클라이언트에 대한 비즈니스 로직/WCF 서비스를 그대로 드러 낼 수 없다면 ...

희망이 있습니다.

+0

감사합니다. NikhilK. 당신의 링크가 내 비즈니스 로직 위에 RIAServices를 배치하는 방법을 이해하는 데 도움이 될 수 있습니다. 감사합니다, 곤잘로 –

관련 문제