내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

이식 가능한 클래스 라이브러리를 사용하여 기능 공유

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows 8

 

이 항목에서는 이식 가능한 클래스 라이브러리의 정의와 이 라이브러리를 사용하여 Windows Phone 8 및 Windows 8 용 앱 사이에 코드를 공유하는 방법에 대해 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

 

이식 가능한 클래스 라이브러리는 .NET Framework 4 부터 사용 가능했습니다. 이 라이브러리를 사용하여 다음 이미지와 같이 Windows 7, Windows 8, Windows Phone, Silverlight 및 Xbox 360을 비롯한 다양한 플랫폼에 사용될 수 있는 이식 가능한 어셈블리를 만들 수 있습니다. 이식 가능한 클래스 라이브러리는 선택한 플랫폼에서 사용될 .NET 어셈블리의 하위 집합을 지원합니다. Visual Studio 2012 Pro 이상 버전에는 이식 가능한 클래스 라이브러리를 만드는 데 사용할 수 있는 프로젝트 템플릿이 함께 제공됩니다. 이 템플릿은 지원할 플랫폼 사이에 기능을 공유하여 시간과 비용을 절약할 수 있는 좋은 방법입니다.

Alignment_Concept_PCLGeneric

이식 가능한 클래스 라이브러리를 사용하여 Windows Phone 8 및 Windows 8 용 앱 사이에서 기능을 공유할 수 있습니다. Visual Studio 2012 Express 버전에는 이식 가능한 클래스 라이브러리 프로젝트 템플릿이 포함되어 있지 않습니다. 템플릿은 Visual Studio 2012 Pro 이상 버전에서만 사용할 수 있습니다. 다음 다이어그램에서는 두 개 앱에서 모두 이식 가능한 클래스 라이브러리를 공유하는 방법을 보여 줍니다. 이식 가능한 클래스 라이브러리를 참조하려면 솔루션 탐색기에서 프로젝트를 선택한 다음 참조 추가를 선택합니다. 이식 가능한 클래스 라이브러리의 이진 또는 이식 가능한 클래스 라이브러리 프로젝트를 가리킵니다.

Alignment_Concept_PCLWin8WP8

Windows Phone 8 및 Windows 8 용 앱을 만들 경우 이식 가능한 코드를 식별해야 합니다. 이식 가능한 클래스 라이브러리에 이 코드를 삽입하고 두 개 앱 사이에서 이식 가능한 클래스 라이브러리를 공유합니다. 이식 가능한 코드에는 다음과 같은 특징이 있습니다.

  • 관리(C# 또는 VB) 코드 이식 가능한 클래스 라이브러리는 .NET 개념이며 관리 코드만 지원합니다. Windows Phone 8 및 Windows 8 에서는 동일한 .NET 엔진을 공유하므로 작성하는 많은 관리 코드, 특히 앱 논리가 이식 가능할 수 있습니다.

  • 조건부 컴파일 사용 안 함 이식 가능한 클래스 라이브러리는 대상으로 지정할 플랫폼에 대한 이식 가능한 .NET 어셈블리 집합에 대해 컴파일됩니다. Windows Phone 8 및 Windows 8 용 앱을 빌드할 경우 이 집합은 해당 플랫폼에서 이식 가능한 .NET 어셈블리 집합을 의미합니다. 조건부 컴파일 지시문은 다양한 플랫폼이나 구성에 대한 코드가 컴파일될 때 서로 다른 코드 경로를 사용하도록 설정합니다. 이는 이식 가능한 클래스 라이브러리의 목적이 아닙니다. Windows Phone 8 에 대한 기능을 구현하고 Windows 8 에 대한 기능을 다르게 구현해야 하는 경우 두 가지 코드 경로를 모두 이식 가능한 클래스 라이브러리에 포함할 수는 없습니다. 대신에 플랫폼 종속적 코드를 추상화하고 이식 가능한 플랫폼 독립적 코드만 공유해야 합니다.

  • Windows 런타임 API 사용 안 함 Windows 런타임 API는 이식할 수 없고 이식 가능한 라이브러리에서 사용할 수 없습니다. Windows Phone 8 및 Windows 8 에서 지원되는 Windows 런타임 API에는 겹치는 부분이 있습니다. 하지만 이진 호환성은 지원되지 않습니다. 이 코드는 각 플랫폼에 대해 컴파일해야 하므로 이식 가능한 클래스 라이브러리에 적합하지 않습니다. 여기서도 Windows 런타임 API를 이식 가능한 클래스 라이브러리에서 공유되지 않는 클래스나 개체로 추상화해야 합니다.

  • UI 구성 사용 안 함 Windows Phone 8 및 Windows 8 에 대한 XAML은 동일한 항목을 인식하고 대부분 UI 컨트롤의 이름이 동일하지만 이 코드는 이식할 수 없습니다. UI 코드는 각 플랫폼에 대해 컴파일해야 하므로 이식 가능한 클래스 라이브러리에 배치할 수 없습니다.

MVVM(Model-View-ViewModel) 패턴 및 .NET API를 사용하여 Windows Phone 8 및 Windows 8 용 앱을 만들 경우 이식 가능한 클래스 라이브러리에서 많은 코드를 공유할 수 있습니다. 뷰 모델 및 모델은 이식 가능하도록 디자인할 수 있으며 이러한 항목을 이식 가능한 클래스 라이브러리에 배치해야 합니다. 일반적으로 앱의 보기와 시작 코드는 플랫폼에 특정하며 Windows Phone 8 및 Windows 8 앱 프로젝트에서 구현해야 합니다. 이에 대한 예는 다음 다이어그램에 나와 있습니다.

Alignment_Concept_PCL_MVVM

뷰 모델이 플랫폼 특정 코드를 호출해야 하는 경우에는 해당 기능을 플랫폼 독립적 인터페이스로 추상화하고 이 인터페이스를 이식 가능한 클래스 라이브러리에서 사용해야 합니다. 그런 다음 각 앱 프로젝트에서 플랫폼 특정 방식으로 이 인터페이스를 구현할 수 있습니다. 이 기술은 매우 강력한 코드 공유 기술이며 이식 가능한 클래스 라이브러리를 한 번 컴파일하고 여러 플랫폼에서 사용할 수 있으므로 이진 공유를 허용합니다.

표시:
© 2014 Microsoft