다음을 통해 공유


공유 코드

WCF RIA Services는 중간 계층과 프레젠테이션 계층 간에 공유되는 응용 프로그램 논리를 작성할 수 있도록 하므로 서버와 클라이언트에서 동일한 기능을 제공합니다. 코드는 소스 파일이나 어셈블리를 사용하여 공유할 수 있습니다.

클라이언트 코드 생성 항목에서 설명하는 자동 코드 생성 프로세스와 달리 공유 코드는 컴파일 중에 변경되지 않습니다. 대신 코드는 계층 간에 축약적으로 복사되거나 공유됩니다. 공유 코드를 사용하여 서버에서 정의되지만 클라이언트에서도 코드를 생성하는 엔터티에 대한 논리 또는 부분 클래스 확장을 정의할 수 있으므로 동일한 논리를 두 곳에서 모두 사용할 수 있습니다.

공유 소스 파일

중간 계층에 소스 파일을 추가한 다음 프레젠테이션 계층과 공유하도록 해당 파일을 명시적으로 지정할 수 있습니다. 계층 간에 소스 파일을 공유하는 두 가지 방법이 있습니다. 첫 번째 방법은 공유 명명 규칙에 따라 소스 파일 이름을 지정하는 것이고(예: C#의 경우 *.shared.cs 또는 Visual Basic의 경우 *.shared.vb), 두 번째 방법은 Visual Studio 2010에서 연결된 파일 기능을 사용하는 것입니다.

공유 명명 규칙

공유 명명 규칙(*.shared.cs 또는 *.shared.vb)을 사용하여 파일을 공유하는 경우 소스 코드 파일을 공유하기 위한 "밀어넣기" 모델을 구현합니다. 공유 파일은 컴파일 중에 중간 계층 프로젝트에서 클라이언트 프로젝트로 능동적으로 복사됩니다. 공유 명명 규칙은 RIA Services 링크가 클라이언트 프로젝트와 서버 프로젝트 간에 있는 경우에만 파일 공유를 위해 작동합니다.

공유 파일

공유 명명 규칙의 장점은 다음과 같습니다.

공유 명명 규칙 장점 설명

기본 제공 지원

공유 파일 동기화를 유지하기 위해 개발자가 추가로 작업을 수행할 필요가 없습니다.

투명성

이름은 파일이 공유용이라는 것을 명확하게 나타냅니다.

자체 유지 관리

새 공유 파일이 추가되면 솔루션이 컴파일될 때 중간 계층에 연결된 모든 클라이언트 프로젝트가 자동으로 업데이트됩니다.

이해하기 쉬운 디버깅 환경

개발자는 파일의 서버 또는 클라이언트 버전에서 중단점을 설정할 수 있습니다.

공유 명명 규칙의 단점은 다음과 같습니다.

공유 명명 규칙 단점 설명

새로운 개념

개발자는 공유 명명 규칙에 대해 알고 있어야 합니다.

파일이 복사됨

공유 파일은 클라이언트 프로젝트로 실제로 복사되므로 개발자가 복사된 버전을 실수로 편집하고 다음 컴파일 중에 변경 내용을 손실할 수 있습니다.

자세한 내용은 방법: 소스 파일을 통해 코드 공유를 참조하십시오.

연결된 파일

연결된 파일은 Visual Studio 2010의 기존 기능이며 RIA Services 에 고유하지 않습니다. 프로젝트 간의 RIA Services 링크가 존재할 수 있지만 연결된 파일을 사용하는 데는 필요하지 않습니다. 연결된 파일 방법을 사용하는 경우 소스 코드 파일을 공유하기 위한 "끌어오기" 모델을 구현합니다. 클라이언트 프로젝트에는 파일의 복사본이 포함되지 않습니다. 대신 클라이언트 프로젝트는 서버 프로젝트에서 파일을 참조하기만 합니다.

연결된 파일

서버 프로젝트와 클라이언트 프로젝트를 다른 프로젝트의 파일에 연결할 수도 있습니다.

연결된 파일

연결된 파일 방법의 장점은 다음과 같습니다.

연결된 파일 장점 설명

기존 Visual Studio 기능

개발자가 새로운 규칙을 배울 필요가 없습니다.

파일이 복사되지 않음

파일이 서버 프로젝트에만 있습니다. 따라서 개발자가 클라이언트의 복사된 버전을 변경하고 다음 컴파일 중에 변경 내용을 손실할 수 없습니다.

연결된 파일 방법의 단점은 다음과 같습니다.

연결된 파일 단점 설명

명시적 사용자 작업 필요

개발자가 각 공유 파일을 연결해야 합니다.

자체 유지 관리 없음

공유 파일이 추가되거나 제거되면 각 클라이언트 프로젝트를 업데이트해야 합니다.

투명성 부족

개발자가 프로젝트 파일을 검사하여 공유되는 파일을 확인해야 합니다.

불편한 디버깅 환경

중단점을 작동시킨 계층을 확인하기가 쉽지 않습니다.

자세한 내용은 방법: 소스 파일을 통해 코드 공유를 참조하십시오.

공유 어셈블리

프로젝트 간에 소스 파일을 공유하는 대신 코드를 클래스 라이브러리로 컴파일한 다음 어셈블리 참조를 통해 라이브러리를 공유할 수 있습니다. .NET Framework 버전 4, Silverlight 4 등의 다른 프레임워크에서 사용하는 경우에도 어셈블리가 호환되도록 WCF RIA Services 클래스 라이브러리를 사용합니다.

다음 다이어그램에서는 RIA Services 클래스 라이브러리를 사용하여 코드를 공유하는 n 계층 응용 프로그램을 보여 줍니다. 중간 계층과 클라이언트 계층에서는 클래스 라이브러리에 대한 어셈블리 참조를 사용합니다.

클래스 라이브러리 구조

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