2011-09-01 1 views
4

DataAccess가 기존 DASS 코드가 아닌 EF를 기반으로하지 않는 새로운 Silverlight LOB 응용 프로그램을 개발하기 시작했습니다.RIA Services Vs. WCF 및 공유 코드

우리는 현재 RIA 서비스 또는 간단한 WCF 서비스를 Silverlight의 외관 레이어로 사용할지 여부를 논의하고 있습니다.

옵션 :

RIA 서비스 및 생성 된 코드 : RIA 서비스는 자동적으로 실버 라이트 프로젝트에 프록시 우리의 도메인 모델의 클래스와 DomainServices을 생성합니다.
이 우리의 서비스가 DomainService 클래스에서 상속해야합니다, 우리의 사용자 정의 모델은 일반적으로 직렬화 할 수 있도록 많은 작업과 해결 방법을 필요로한다는 것을 의미합니다

WCF와 공유 라이브러리 (우리는 EF를 사용하지 말아 이후) : Silverlight와 우리 서버 코드 (as offered here) 사이에서 공유되는 DomainModel 라이브러리를 만들어 도메인 클래스가 어떻게 보이는지, Silverlight에서 어떻게 볼 수 있는지, WCF 나에게 기본 클래스를 사용하고 우리의 서비스가 노출되는 방법에 대해 우리에게 훨씬 더 많은 권한을 부여 할 필요는 없습니다.

그래서 우리는 EF를 사용하지 않으며, RIA 서비스에 대한 프로는 무엇이며, WCF와 공유 도메인을 사용하는 것은 무엇입니까?

+1

확실한 대답을 드릴 수는 없으며 솔직히이 질문은 다소 주관적이며 논쟁의 여지가 있습니다. 나는 당신이 당신이 선호하거나 취하는이 것을 당신에게 말할 것입니다. WCF를 사용하십시오. Uber "우리는 내부의 모든 영리함을 다합니다"RIA 서비스와 같은 프레임 워크는 초기 투자가 거의 없을 때 대규모 수익을 제공하는 것입니다 (귀하가 EF를 사용하지 않으므로 투자가 실제로 커질 것입니다). 그러나 나중에 막대한 비용이 발생할 수 있습니다 때로는 회복하기가 불가능한 길 아래로. WCF는 당신을 훨씬 더 강력하게 통제합니다. – AnthonyWJones

+0

그건 내 생각이었습니다. 자동으로 여기에있는 많은 프로젝트에서 자동으로 축약되었습니다. MVP 및 RIA 서비스에 대한 다른 전도사와 관련하여 기하 급수적으로 늘어나는 기사와 예제를 통해 향후 버전과 도구가 RIA Services와의보다 나은 지원과 통합을 유지하게 될 것이므로 WCF가 남을 것입니다. 당신의 대답은 서 있습니까? – sternr

답변

3

두 기술 모두 합리적으로 실제 경험이 있습니다. 내 관점에서

주요 장점과 단점 :

RIA 서비스

  • 프로 : 개발은 (훨씬) 더 빠르게, 심지어 엔티티 프레임 워크를 사용하지 않고. ViewModel을 생성하고, AutoMapper와 맵핑하고, 검증/데이터 입력/관계에 필요한 속성을 지정할 수 있습니다. 이것은 엔티티 프레임 워크를 사용할 때조차도 우수 사례입니다.
  • 단점 : 로트 오버 헤드.
  • 단점 : 데이터 (> 100 개체 같은)

WCF 및 공유 라이브러리를 더 많은 양을 보낼 때 성능이 저하

  • 프로 : 성능이 상대적으로 우수한
  • 콘입니다 : 개발 시간/유지 보수성은 RIA 서비스만큼 좋지 않습니다.
  • 단점 : (MVVM을 사용하는 경우에도) DomainDataSource 없이는 데이터 바인딩을 사용할 수 없습니다. 데이터 바인딩 부분에 대한

업데이트 : RIA 서비스는 실버 라이트에서 DomainDataSource 제어 할 수 있습니다. 이렇게하면 해당 상태 (Busy 등)에 대한 바인딩 가능한 속성을 사용하여 쉽게 (비동기 적으로)로드 할 수 있으므로 애니메이션로드 및 사용자 경험의 전반적인 개선이 쉬워집니다. 이것은 물론이 통제없이 할 수 있지만 도움이됩니다.

RIA 서비스 성능에 대해서는 예제를 찾을 수없는 것 같습니다 (충족시킬 수없는 응답 시간 때문에 기존 WCF 서비스에 도메인 서비스를 다시 작성하는 개발 시간을 몇 개월 잃어버린 사람이 있습니다).

Silverlight (비즈니스 응용 프로그램)에 대한 추가 참고 사항 : 브라우저를 110 % 또는 90 %로 임의의 비율로 확대 해보십시오. 렌더링이 작동하는 방식 때문에 글꼴/구성 요소가 흐려집니다. 여러 대의 컴퓨터/구성에서이 문제를 확인했으며 이에 대한 수정/해결 방법을 찾지 못했습니다. 기기 픽셀에 스냅하는 것은 전혀 도움이되지 않습니다.

또한 결정을 내리기 전에 JQuery와 HTML5를 솔루션 옵션으로 사용하여 MVC3을 고려하는 것이 좋습니다. HTML 레이아웃 시스템은 Silverlight만큼 좋지 않을 수도 있지만 크로스 플랫폼 및 모바일 지원과 같은 이점이 있습니다.

+0

+1 : 대용량 데이터의 성능 저하를 알지 못했습니다. 알아 둘만한. –

+1

마지막으로 "데이터 바인딩을 사용할 수 없습니까?"라는 점을 명확히 할 수 있습니까? 어째서? – AnthonyWJones

+0

RIA 성능 저하에 대한 정보가 있습니까? RIA와 WCF가 둘 다 WCF이기 때문에 무엇이 원인인지 궁금 할 것입니다. –