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

링크로 추가를 사용하여 코드 공유

2014-06-18

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

 

이 항목에서는 Visual Studio에서 제공되는 링크로 추가를 사용하여 여러 프로젝트에서 코드를 공유하는 방법과 Windows Phone 8 및 Windows 8 에서 실행되는 앱을 빌드할 때 이 기술을 이용하는 방법에 대해 설명합니다.

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

 

Visual Studio에서는 파일을 각 프로젝트에 복사하지 않고 여러 프로젝트에서 동일한 파일을 사용할 수 있습니다. 예를 들어 다음 다이어그램에서는 두 개 프로젝트가 동일한 클래스 SharedClass.cs를 공유합니다.

Alignment_Concept_ShareGeneric

이 간단하지만 강력한 코드 공유 전략을 사용하여 파일이나 코드 자산을 한 번 만든 다음 여러 프로젝트와 공유할 수 있습니다. 프로젝트에 연결된다는 점을 제외하고 파일은 프로젝트의 다른 파일과 같이 작동합니다. 파일을 편집할 경우 변경 내용은 파일에 연결된 모든 프로젝트에 적용됩니다.

Windows Phone 8 및 Windows 8 에서 실행되는 앱을 빌드할 때 이 코드 공유 기술을 사용할 수 있습니다. 만들고 있는 앱 유형에 따라 여러 프로젝트에서 이 방법으로 코드를 공유할 기회가 있습니다. 이 기술은 특히 이식이 불가능하고 이식 가능한 클래스 라이브러리 내부에서 공유할 수 없는 코드를 공유하려는 경우 유용합니다. Windows 런타임 API는 포팅이 불가능하며 포팅 가능한 클래스 라이브러리에서 사용할 수 없습니다. 하지만 Windows Phone 8 및 Windows 8 에서는 Windows 런타임 API의 하위 집합을 공유하며 이 API에 대해 한 번 작성한 다음 두 앱에서 모두 논리를 공유하려고 할 수 있습니다. Windows Phone 및 Windows 8 에 공통적인 Windows 런타임 API에 대한 자세한 내용은 Windows Phone 런타임 API를 참조하세요. 다음 다이어그램에서는 파일을 여러 프로젝트에 연결하여 코드를 공유하는 방법을 보여 줍니다.

Alignment_Concept_ShareWin8WP8

이 예제에는 Windows Phone 8 프로젝트와 Windows 8 프로젝트가 있습니다. SharedClass.cs 클래스에는 포팅이 불가능하지만 Windows Phone 8 및 Windows 8 에 공통적인 API를 사용하여 작성된 코드가 들어 있습니다. 이 클래스를 각 프로젝트에 링크로 추가하여 공유할 수 있습니다. 이렇게 하면 코드를 한 번 작성하고 여러 번 사용할 수 있습니다. 공통적이고 이식 불가능한 코드를 공유된 클래스로 추상화했고 각 앱 프로젝트에는 앱에 관련된 코드와 기능이 포함됩니다.

일반적으로 플랫폼 독립적이고 두 앱에 모두 사용되는 격리할 수 있는 코드에 이 기술을 사용할 수 있습니다. 이 종류의 공유에 대한 좋은 후보에는 다음 시나리오가 포함되지만 이에 제한되지 않습니다.

  • 두 앱에 모두 공통적이지만 포팅이 불가능한 앱 논리입니다. Windows Phone 8 및 Windows 8 에서 많은 인프라 코드 또는 운영 체제나 외부 데이터 소스와 상호 작용하는 코드는 Windows 런타임 API를 사용하여 작성할 수 있습니다. Windows Phone 8 에서는 Windows 런타임 의 하위 집합을 채택했지만 이 기능을 사용하는 코드를 한 번 작성한 다음 여러 앱에서 공유할 수 있습니다. 예를 들어 두 플랫폼에는 모두 네트워크, 센서, 위치, 앱에서 바로 구매 및 탭+보내기에 대해 동일한 Windows 런타임 API가 있습니다. 두 플랫폼에서 이러한 API는 상당한 부분이 겹칩니다. 이 코드는 이식할 수 없으므로 이식 가능한 클래스 라이브러리에 배치할 수 없습니다. .NET Framework 포팅 가능한 라이브러리는 Windows 런타임 을 지원하지 않습니다. 대신에 앱에서 이러한 API 사용을 클래스로 격리하고 Windows Phone 8 및 Windows 스토어 앱에서 모두 링크된 코드 파일로 공유할 수 있습니다. Visual Studio의 무료 Express 버전을 사용하는 경우 이식 가능한 클래스 라이브러리를 만들 수 없습니다. 이 경우 앱 논리를 공유하려면 이 코드 공유 기술을 사용해야 합니다. 예를 들어 MVVM(Model-View-ViewModel) 패턴을 사용하여 빌드된 앱은 앱의 모델 및 뷰 모델을 공유할 수 있습니다.

  • 플랫폼 종속성이 없는 사용자 컨트롤. Windows Phone 8 및 Windows 8 에서는 둘 다 XAML을 사용하여 다채로운 사용자 환경을 만들 수 있습니다. 두 가지 플랫폼은 이 계층을 서로 다르게 구현하며 API도 서로 다른 네임스페이스에서 정의했습니다. 그러나 이 차이는 극복할 수 있습니다. 사실 많은 기능, 유형 및 구성원은 플랫폼 간에 이름이 동일하게 지정되고 동일한 방식으로 동작합니다. 재정의 지침은 각 플랫폼에 대해 가능한 최상의 사용자 환경을 빌드하는 것이지만 두 플랫폼에 공통적이고 한 번 작성하며 양쪽 앱을 공유하는 UI의 요소를 추출하는 경우가 있을 수 있습니다. XAML을 조건부로 컴파일할 수 없으므로 공유된 사용자 컨트롤에 정의된 UI는 플랫폼에 독립적이어야 합니다. 사용자 컨트롤의 코드 숨김 클래스에서 조건부 컴파일을 사용할 수 있으므로 약간의 유연성이 제공됩니다.

이 방법은 코드를 한 번 작성하고 여러 프로젝트에서 공유하는 간단한 방법입니다. 코드에서 플랫폼 차이를 처리하는 방법에 대한 자세한 내용은 Windows Phone 8 및 Windows 8 플랫폼 차이 처리를 참조하세요.

Visual Studio에서 프로젝트의 파일에 연결합니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 기존 항목 추가를 선택합니다. 또는 Shift+Alt+A를 입력할 수 있습니다.

  2. 기존 항목 추가 대화 상자에서 추가할 파일을 선택하고 추가 드롭다운 목록에서 링크로 추가를 클릭합니다.

    Alignment_Screenshot_AddAsLinkDialog
  3. 파일이 프로젝트에 연결된 파일로 추가되며, 이는 실제로 프로젝트에 복사되지 않지만 프로젝트에 링크됨을 의미합니다. 연결된 파일에는 실제로 프로젝트에 추가된 파일과 다른 아이콘이 포함됩니다.

    • Shared Alignment_Screenshot_SharedClassIcon

    • Not Shared Alignment_Screenshot_NotSharedClassIcon

이 절차에 따라 여러 파일을 프로젝트에 연결할 수 있습니다. 파일을 링크로 추가하려 했는데 실수로 파일을 프로젝트에 추가하는 경우에는 다시 연결된 파일로 추가하기 전에 디스크의 프로젝트 폴더 및 프로젝트에서 파일을 삭제해야 합니다.

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft