2011-12-06 3 views
3

SOA 아키텍처를 사이에서 평가해야합니다. WCF 데이터 서비스 vs WCF RIA Services. 다음은 내 일부 매개 변수 :WCF 데이터 서비스와 WCF RIA 서비스

  1. 여러 개의 클라이언트 (HTML5/아이폰 OS/안드로이드/윈도우 8 메트로/윈도우 폰 7)
  2. 연결되지 오프라인 작동
  3. 검증 엔진
  4. 성능
  5. 네트워크 데이터 압축
  6. 클라우드 환경 지원

누구든지 내 평가를 위해 데이터 수집을 도와 줄 수 있습니까? 또한 SOA 구현에 사용할 수있는 다른 좋은 옵션이 있습니까?

DevForce에 대해 알고 있습니다.

답변

4

둘 중 하나로, OData를 통해 개체를 노출하지만, RIA 서비스는 특별히를 대상으로 :

  • 가난한 사람의 서비스를

    • 실버 소비 - 그들은 적은 노력으로 일어나 쉽게하고 실행할 수 있습니다

    WCF 데이터 서비스는 훨씬 강력하고 구성 가능합니다. 가장 큰 차이 (IMO)는 RIA 서비스가 엔티티 당 하나의 호스트 유형을 필요로하는 반면 WCF 데이터 서비스는 전체 콘텐츠 (복수 IQueryable 속성이있는 유형)를 자동으로 호스트 할 수 있다는 것입니다.

    즉, 두 가지 구현 모두 꽤 잘게 구워졌으며 (다시 IMO에만 해당) 실제로 생각이나 구현되지 않았습니다. ... WebGet/WebInvoke 특성 ... 또는 WCF Web API을 사용하여 호스팅되는 기존 WCF 작업을 사용하는 것이 더 나을 수 있습니다.

    DevForce를 사용하지 않는 이유는 Silverlight 구현을 주로 대상으로하기 때문입니다 (올바르게 호출 한 경우). 즉, 패키지는 RIA 또는 WCF 데이터 서비스보다 훨씬 멋지 며 훨씬 더 완벽합니다.

  • +0

    그러나 이제 WCF RIA는이 블로그 게시물 http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-800T에서 언급 한 것처럼 여러 클라이언트/플랫폼을 지원하는 것으로 보입니다. 따라서 WCF 데이터 서비스의 사용자 지정 구현과 비교하여 빠른 개발을 제공하기 때문에 RIA를 사용하는 것이 좋은 선택 일 수 있다고 생각하십니까? –

    +0

    OData는 본질적으로 REST를 통해 여러 클라이언트/플랫폼을 지원합니다 ... 그래서 WCF Data Services와 RIA가 모두이를 지원합니다. 솔직히 WCF Data Services는 작업하기가 훨씬 쉽고 유연합니다. 어떤 종류의 서비스/엔티티가 호스팅됩니까? (NHibernate? Entity Framework? LINQ to SQL?) – Jeff

    +0

    Entity Framework를 고려 중입니다. 나는 앞으로 나아 가기 전에 100 % 확신하고 싶다. WCF RIA의 제한/단점 중 일부를 알려주십시오. –

    5

    저는 RIA 서비스에 대해 잘 알고 있으며 어디에서 부족한 지 알고 있습니다. 나는 데이터 서비스 및 DevForce에 대해 거의 알고 있지만, 나는 그것이 나를 귀찮게되는 곳 DevForces 정확히 그 지역에서 RIA 서비스보다 더 나은 것으로 광고하는 것을 알고 :

    1. RIA 그룹별로 수행 또는 조인 할 수 없습니다 모든 종류. (흥미롭게도, DevExpress의 툴킷 . 어떤 경우에 RIA 서비스 소스에 그룹에 약간의 속임수를 할 수 있습니다)
    2. 이 아니라의 관계를 이해 않습니다 대다 종류가 번역을 처리해야 할 것입니다 경우 투명하게 브리지 테이블에. (편집 : 이것은 Open Ria Services를 위해 계획 됨)
    3. 변경 추적은 제출할 수 있거나 전체적으로 (기본 어쨌든) 거부 된 컨텍스트 (작업 단위)를 통해 작동합니다. 이는 대개 을 사용하여 엔티티를 전송하는 많은 컨텍스트와 이상한 복사 작업으로 이어집니다. RIAServicesContrib 프로젝트가 도움이됩니다.
    4. 더 이상 유지 관리되지 않는 것으로 보입니다.Entity Framework 4.1이 새로운 DbContext API (코드 우선)를 발표했을 때 Microsoft는 compatibility library을 배포하여 RIA and EF code first을 사용할 수있었습니다. 그 라이브러리는 EF 4.1에 대한 버전 잠금 기능을 가지고 있습니다. 마이크로 소프트는 이제 RIA Services doesn't support DbContext을 Visual Studio 2012에 대한 오웰 노트의 형태로 말합니다. (편집 : DbContext는 이제 다시 지원됩니다 - EF는 현재 버전 5까지 6
    5. (데이터 바인딩을 통해 이 아닌) 관련된 엔티티의 변경을 프로그램 방식으로 관찰하는 것과 같은 일부 작업은 어렵습니다.
    6. 첨부 된 엔티티에서 컨텍스트를 가져 오는 것과 같이 실제로 간단해야하는 것들은 어렵습니다.
    7. 모든 쿼리는 단일 요청이며 CRUD의 나머지 CUD 만 일괄 처리됩니다.
    8. 일반적인 CUD 작업과 함께 호출 할 사용자 지정 메서드는 매우 제한적입니다. 특히, 에서, 전체 문맥을 취소하지 않고 예정된 것을 취소 할 수있는 것은 이 아닙니다. 그건 을 사용하여 대부분의 경우 쓸모 없게 만들었습니다.
    9. DomainDataSource를 사용할지 여부를 결정해야합니다. DomainDataSource는 너무 많고 너무 적은 짐승 입니다. 프로그래밍 방식으로 모든 것을 가져올 수도 있지만 몇 가지는이 xaml 도우미와 정말 빠르게 연결됩니다.
    10. 격리 된 저장소에 엔터티를 serialize하기위한 기본 제공 지원이 없습니다.
    11. Silverlight (및 Javascript는 내가 믿는다)는 WPF가 지원되는 유일한 플랫폼입니다. (편집 :이 열기 리아 서비스 예정입니다 - 특히, BreezeJS 서비스를 제공 할 수 있어야한다) 데이터 서비스가 (내 생각), 내가 그것을 자세히보고 관심이 없었어요 나이 때문에

    . 그러나 최근에 DevForce의 기능 목록을 살펴 보았습니다. 경험으로는 아무 것도 말할 수는 없지만 흥미로운 것 같습니다.

    (편집 :. 나는 콜린 블레어 here하여 RIA 서비스 및 WCF의 매우 지식이 비교를 발견)

    건축가는 RIA 서비스 here 자신의 제품을 비교합니다. 나는 그의 요점들 중 일부를 다 다루었지만 전부는 아니었다.

    나는 RIA Services가 원시 WCF보다 분명히 좋다고 말할 수 있지만 그보다 더 좋은 것이 있어야한다는 것도 분명합니다. 나는 그것이 DevForce라고 희망한다.