다음을 통해 공유


RIA Services 솔루션 만들기

WCF RIA Services를 사용하면 비즈니스 응용 프로그램을 만들 때 다양한 시나리오를 처리하는 솔루션을 만들 수 있습니다. 이러한 시나리오는 매우 기본적인 것부터 상당히 복잡한 것까지 광범위합니다. 예를 들어, 기본적인 시나리오는 중간 계층의 소수 도메인 서비스에만 액세스하는 단일 Silverlight 응용 프로그램으로 구성될 수 있습니다. 비교적 복잡한 시나리오는 대규모 도메인 서비스 집합을 노출하는 일반적인 중간 계층 레이어에 모두 연결되는 여러 Silverlight 응용 프로그램을 포함할 수 있습니다. 이 항목에서는 RIA Services 솔루션을 만들고 관리할 때 발생하는 다음과 같은 문제를 다룹니다.

  • RIA Services 솔루션을 구성하는 다양한 방법은 무엇입니까?

  • 어떤 시나리오가 특정 시나리오에 가장 적합합니까?

  • 어떻게 솔루션 문제를 해결할 수 있습니까?

  • 어떻게 솔루션을 배포할 수 있습니까?

이 항목에서는 RIA Services 에 대한 수많은 일반적 시나리오와 관련된 작업을 안내하는 이 단원의 연습 및 기타 항목에 대한 몇 가지 지침도 제공합니다. 이 단원에는 다음과 같은 5개의 연습이 포함되어 있습니다.

  1. 연습: RIA Services 둘러보기

  2. 연습: RIA Services 솔루션 만들기

  3. 연습: Silverlight 비즈니스 응용 프로그램 템플릿 사용

  4. 연습: RIA Services 클래스 라이브러리 만들기

  5. 연습: 비즈니스 응용 프로그램 지역화

이 단원에는 다음과 같은 3개의 항목도 포함되어 있습니다.

  1. 방법: RIA Services 링크 추가 또는 제거: RIA Services 링크 관리에 대한 정보 제공

  2. 도메인 서비스 마법사 사용: 대화 상자의 UI 요소에 대해 설명

  3. Debugging a RIA Services Solution: RIA Services 솔루션을 제대로 만들 수 없을 때 수행할 작업에 대한 몇 가지 지침 제공

RIA Services 설명서의 이 단원에서 제공하는 연습을 실행하려면 WCF RIA Services 및 WCF RIA Services 도구 키트 외에도 Visual Studio 2010, Silverlight 런타임 및 SDK 등의 몇 가지 필수 구성 요소 프로그램을 올바르게 설치하고 구성해야 합니다. 또한 SQL Server 2008 R2 Express with Advanced Services를 설치하고 구성해야 하며 AdventureWorks OLTP 및 LT 데이터베이스를 설치해야 합니다.

이러한 각 사전 요구 사항을 충족하기 위한 자세한 지침은 WCF RIA Services의 사전 요구 사항 노드의 항목에서 제공합니다. 이 단원에서 이 RIA Services 연습을 수행할 때 발생할 수 있는 문제를 최소화하려면 여기서 제공하는 지침을 따르십시오.

RIA Services 링크

모든 RIA Services 솔루션의 Silverlight 프로젝트와 관련 중간 계층 프로젝트 사이에는 RIA Services 링크가 있습니다. RIA Services 링크는 중간 계층의 코드에서 프레젠테이션 계층 코드를 쉽게 생성할 수 있도록 하는 특수한 형태의 프로젝트 간 참조입니다. 새 Silverlight 프로젝트를 만들 때 WCF RIA Services 사용 확인란을 선택하여 RIA Services 링크를 만듭니다. 프로젝트 속성에서 기존 프로젝트에 대한 RIA Services 링크를 만들 수도 있습니다. 다음 단원의 설명과 같이, 응용 프로그램 프로젝트 간에 RIA Services 링크를 만드는 경우도 있고 클래스 라이브러리 프로젝트 간에 링크를 만드는 경우도 있습니다.

프로젝트 간에 링크가 있을 때 Silverlight 프로젝트는 중간 계층 코드에 액세스할 수 있게 하는 프록시 클래스를 받습니다. 중간 계층의 특정 부분만 Silverlight 프로젝트에 적용되도록 지정하는 방법은 없습니다. RIA Services 링크 사용에는 다음과 같은 규칙이 적용됩니다.

  • 링크는 Silverlight 클라이언트 프로젝트에 정의됩니다.

  • 링크는 항상 Silverlight 클라이언트 프로젝트에서 .NET 서버 프로젝트 또는 클래스 라이브러리를 가리킵니다.

  • Silverlight 클라이언트 프로젝트당 하나의 링크만 있을 수 있습니다.

  • 링크는 다른 Silverlight 클라이언트 프로젝트를 가리킬 수 없습니다.

  • 여러 Silverlight 클라이언트 프로젝트가 동일한 서버 프로젝트 또는 클래스 라이브러리를 가리킬 수 있습니다.

  • Silverlight 응용 프로그램은 클래스 라이브러리 프로젝트에 직접 연결될 수 없습니다.

RIA Services 링크 관리에 대한 자세한 내용은 이 단원의 방법: RIA Services 링크 추가 또는 제거를 참조하십시오.

기본 솔루션 구조

기본 솔루션 구조에서 RIA Services 는 단일 클라이언트 프로젝트 및 단일 서버 프로젝트를 만듭니다. Silverlight 응용 프로그램 템플릿을 사용하여 새 프로젝트를 만들고 WCF RIA Services 사용 확인란을 선택하면 이 기본 구조의 솔루션이 만들어집니다. 그러면 두 프로젝트 사이에 RIA Services 링크가 이미 있습니다. 솔루션을 빌드할 때 도메인 서비스와 공유 코드에 대해 클라이언트 코드가 생성됩니다. 다음 그림에서는 기본 솔루션 구조를 보여 줍니다.

기본 프로젝트 구조

솔루션을 빌드한 후 서버 프로젝트에 추가된 모든 도메인 서비스 형식과 공유 코드를 Silverlight 클라이언트 프로젝트에 자동으로 사용할 수 있기 때문에 기본 솔루션 구조가 편리합니다. 또한 서버 프로젝트에 추가한 공유 코드를 클라이언트 프로젝트에서 볼 수 있습니다. 이 구조는 서버 프로젝트에 도메인 서비스가 많지 않고 여러 Silverlight 응용 프로그램 간에 비즈니스 논리를 다시 사용할 필요가 없을 때 효과적입니다.

기본 구조를 사용하는 솔루션에서는 RIA Services 링크가 있는 Silverlight 응용 프로그램을 서버 프로젝트에 더 추가할 수 있습니다. 하지만 기본 구조에는 제한 사항이 있습니다. 각 Silverlight 클라이언트에 대해 생성된 코드는 서버 프로젝트의 모든 중간 계층 코드에 액세스할 수 있습니다. 예를 들어, 단일 서버 프로젝트에 연결된 세 개의 Silverlight 응용 프로그램이 있고 Silverlight 응용 프로그램 중 하나에만 사용할 도메인 서비스를 추가하려는 경우 세 개의 클라이언트 응용 프로그램은 모두 도메인 서비스에 대해 생성된 도메인 컨텍스트가 있으며 해당 도메인 서비스에 액세스할 수 있습니다.

Visual Studio 2010에서 RIA Services 솔루션 만들기에 대한 자세한 내용은 연습: RIA Services 솔루션 만들기를 참조하십시오. 클라이언트 프로젝트에 대해 생성된 코드에 대한 자세한 내용은 클라이언트 코드 생성를 참조하십시오.

Silverlight 비즈니스 응용 프로그램 템플릿

RIA Services 는 Silverlight 비즈니스 응용 프로그램 템플릿도 제공합니다. 이 템플릿은 클라이언트를 위해 Silverlight를 이용하는 비즈니스 응용 프로그램을 빌드하기 위한 편리한 시작점을 제공합니다. 템플릿은 Silverlight 탐색 응용 프로그램을 기반으로 하며 RIA Services 를 사용하여 인증과 사용자 등록을 지원합니다. Silverlight 비즈니스 응용 프로그램 템플릿을 사용하여 프로젝트를 만들면 RIA Services 에서 기본 구조의 솔루션이 만들어집니다. Silverlight 비즈니스 응용 프로그램 템플릿을 사용하면 다음 기능이 자동으로 추가됩니다.

  • 로그인 창

  • 등록 창

  • Silverlight 탐색

비즈니스 응용 프로그램에 대한 기본 인증 모드는 폼 인증입니다. Windows 인증을 사용하려면 Web.config 파일에서 <authentication mode="Windows"/>와 같은 인증 요소의 값을 변경하고 생성된 WebContext 클래스에서 Authentication 속성 값을 변경하면 됩니다. 비즈니스 응용 프로그램 템플릿에는 FormsAuthentication 또는 Windows 인증을 지원하는 코드가 자동으로 포함됩니다. 자세한 내용은 연습: Silverlight 비즈니스 응용 프로그램 템플릿 사용 항목을 참조하십시오.

서버 프로젝트의 Services 폴더에는 사용자 등록 및 사용자 인증을 노출하는 도메인 서비스가 들어 있습니다. 사용자 등록 서비스는 ASP.NET 멤버 자격 공급자를 이용하여 새 사용자를 만듭니다. 서버 프로젝트의 Models라는 폴더에는 사용자 및 등록 데이터의 속성을 정의하기 위한 클래스가 들어 있습니다. 이러한 클래스에 속성을 추가하여 응용 프로그램에 대한 사용자 데이터를 사용자 지정할 수 있습니다.

클라이언트 프로젝트의 비즈니스 응용 프로그램에는 프레젠테이션 레이어의 개발을 단순화하는 코드가 들어 있습니다. Libs 폴더와 Controls 폴더에는 템플릿 내에서 사용되는 어셈블리와 컨트롤이 들어 있습니다. Views 폴더 안에 있는 Login 폴더에는 인증 및 사용자 등록 컨트롤이 들어 있습니다. 이러한 컨트롤은 프로젝트에서 자동으로 사용됩니다. Assets 폴더에 있는 Resources 폴더에는 프로젝트 내의 텍스트에 대한 리소스 문자열이 들어 있습니다. 응용 프로그램에 텍스트를 추가할 때 응용 프로그램 문자열에 대한 파일에 리소스 문자열을 추가할 수 있습니다.

자세한 내용은 연습: Silverlight 비즈니스 응용 프로그램 템플릿 사용을 참조하십시오.

N 계층 클래스 라이브러리 구성 요소 지원

RIA Services 는 WCF RIA Services 클래스 라이브러리 프로젝트 형식을 제공하여 라이브러리를 통한 코드 공유를 지원합니다. 클래스 라이브러리를 사용하여 비즈니스 논리를 재사용 가능한 N 계층 클래스 라이브러리 구성 요소로 패키징합니다.

다음 그림에서는 RIA Services 클래스 라이브러리를 사용하는 솔루션 구조를 보여 줍니다.

클래스 라이브러리 구조

이 그림에서는 응용 프로그램 프로젝트 간에 RIA Services 링크가 없습니다. 그 대신에 클래스 라이브러리 프로젝트 간에 링크가 있습니다. 응용 프로그램에 여러 클래스 라이브러리를 사용할 수 있으며 여러 응용 프로그램에 클래스 라이브러리를 다시 사용할 수 있습니다.

RIA Services 클래스 라이브러리를 사용하면 다음과 같은 장점이 있습니다.

  • 단일 데이터 도메인의 서버 및 클라이언트 부분을 단일 구성 요소로 개발하고 패키징할 수 있습니다. 이 구성 요소는 여러 응용 프로그램에서 다시 사용할 수 있습니다.

  • 클라이언트 프록시 코드 생성 및 소스 코드 공유는 한 위치에서만 발생합니다. 위치는 구성 요소의 계층 사이에 있으며 모든 Silverlight 응용 프로그램에 있는 것은 아닙니다.

  • 단일 웹 응용 프로그램 프로젝트 내의 여러 Silverlight 응용 프로그램은 필요한 클래스 라이브러리만 참조할 수 있습니다. 한 Silverlight 클라이언트가 중간 계층에서 노출되는 모든 비즈니스 논리를 볼 필요는 없습니다.

RIA Services 클래스 라이브러리를 사용하면 응용 프로그램에 필요한 구성 요소만 제공하는 유연한 솔루션 구조를 빌드할 수 있습니다. 다음 그림에서는 여러 RIA Services 클래스 라이브러리를 사용하는 솔루션 구조를 보여 줍니다.

클래스 라이브러리 구조

[!참고] Silverlight 비즈니스 응용 프로그램 프로젝트에 클래스 라이브러리 프로젝트를 추가하는 경우 클래스 라이브러리의 서버 프로젝트에 인증 서비스를 추가할 수 없습니다. Silverlight 비즈니스 응용 프로그램 템플릿의 User 개체는 클래스 라이브러리에 액세스할 수 없습니다.

자세한 내용은 연습: RIA Services 클래스 라이브러리 만들기를 참조하십시오.