WCF RIA 서비스 란 무엇입니까?


102

WCF RIA 서비스에 대한 MSDN 사이트가 싫습니다. 그것은 그것이 무엇인지 말하지 않고 그것이 무엇을하는지 말만합니다. 그것은 그것이 무엇을 성취 할 수 있는지를 말하지만 내가 그것이 필요한 이유는 말하지 않습니다.

예를 들면 :

"n 계층 RIA 솔루션을 개발할 때 일반적인 문제는 중간 계층과 프리젠 테이션 계층간에 애플리케이션 논리를 조정하는 것입니다."

글쎄, 그것은 나에게 큰 의미가 없습니다.

"RIA Services는 프로그래밍 논리를 수동으로 복제하지 않고도 서버의 응용 프로그램 논리를 RIA 클라이언트에서 사용할 수 있도록하는 프레임 워크 구성 요소, 도구 및 서비스를 제공하여이 문제를 해결합니다. 비즈니스 규칙을 인식하는 RIA 클라이언트를 만들 수 있습니다. 그리고 솔루션이 다시 컴파일 될 때마다 클라이언트가 최신 중간 계층 로직으로 자동 업데이트된다는 사실을 알고 있습니다. "

그렇다면 서버에서 DLL을 다운로드합니까? 데이터 규칙을 설명하는 메타 데이터입니까?

그래서 그것은 무엇입니까? RAD 용 VS 2010 애드온입니까? 아니면 WCF 위에 있거나 그 아래에있는 기술입니까? 어디에 살고 있습니까? 데이터, 서버, 무엇?

요약 해 주시면 감사하겠습니다.


3
코드 생성과 서버 측 및 클라이언트 측 코드를 모두 사용하는 WCF 기반 기술입니다. 주로 유효성 검사 및 기타 사항을 사용하여 서버에서 클라이언트로 그리고 다시 데이터를 섞는 데 중점을 둡니다.
Rangoric

1
@Rangoric : 답변으로 게시 할 수 있습니다. 짧은 답변도 좋은 답변이 될 수 있습니다.
Henk Holterman

7
아, 롤, 나는 그것을 RIAA 로 잘못 읽었고 사이코로 갔다.
Mateen Ulhaq 2011

알아두면 좋은 정보 : RIA = Rich Internet Applications (Silverlight의 씬 클라이언트), 여기에 잘 설명되어 있습니다 . WCF RIA 서비스는 씬 클라이언트를 서버에 연결하는 WCF를 통한 RIA 서비스입니다. " WCF RIA Services는 Microsoft SQL (Structured Query Language) 서버 데이터베이스에서 데이터를 검색하고이 데이터를 Silverlight 클라이언트에서 사용할 수있게하여 편집 및보기를 위해 제공합니다. "

답변:


109

RIA 서비스는 서버와의 통신을 처리하고 클라이언트 측 유효성 검사를 제공하는 클라이언트 측 (Silverlight) 개체를 자동으로 생성하는 서버 측 기술입니다.

RIA 서비스 내부의 주요 개체는 DomainService일반적으로 LinqToEntitiesDomainServiceLinqToEntities 모델에 연결된입니다.

RIA 서비스에서 기억해야 할 핵심 사항은 주로 정교한 빌드 트릭이라는 것입니다. 도메인 서비스를 만들고 솔루션을 컴파일하면 도메인 서비스의 클라이언트 측 표현이 생성됩니다. 이 클라이언트 측 표현에는 동일한 인터페이스가 있습니다. CustomerService메소드 를 사용하여 서버 측 도메인 서비스를 생성한다고 가정합니다 IQueryable<Customer> GetCustomersByCountry. 솔루션을 빌드 할 때 CustomerContext메서드가있는 Silverlight 프로젝트 내부에 클래스가 생성됩니다 GetCustomersByCountryQuery. 이제 서버에서 호출하는 것처럼 클라이언트에서이 메서드를 사용할 수 있습니다.

업데이트, 삽입 및 삭제는 다른 패턴을 따릅니다. 도메인 서비스를 생성 할 때 편집을 활성화할지 여부를 지정할 수 있습니다. 업데이트 / 삽입 / 삭제에 해당하는 방법은 서버 측 도메인 서비스에서 생성됩니다. 그러나 클라이언트 측 부분에는 이러한 방법이 없습니다. 당신이 가지고있는 CustomerContext것은 SubmitChanges. 그래서 어떻게 작동합니까?

  • 업데이트의 경우를 통해 검색 한 기존 고객의 속성을 업데이트하기 만하면됩니다 GetCustomersByCountryQuery.
  • 삽입물에는 CustomerContext.Customers.Add(new Customer(...) {...}).
  • 삭제의 경우 CustomerContext.Customers.Remove(someCustomer).

편집이 끝나면 CustomerContext.SubmitChanges().

유효성 검사의 경우 System.ComponentModel.DataAnnotations네임 스페이스의 유효성 검사 속성을 사용하여 서버 측 개체를 장식 할 수 있습니다 . 다시 말하지만, 프로젝트를 빌드 할 때 해당 클라이언트 측 개체에 대한 유효성 검사 코드가 자동으로 생성됩니다.

이 설명이 조금 더 도움이 되었기를 바랍니다.


확실히 그렇습니다. 공유해 주셔서 감사합니다. MSDN 사이트를 업데이트 할 수 있기를 바랍니다. 이제 도메인 개체에 속성을 추가하면 어떻게됩니까? 자동으로 업데이트됩니까?
Aliostad

업데이트, 삽입 및 삭제에 대한 추가 정보를 추가했습니다.
Ronald Wildenberg

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.