내보내기(0) 인쇄
모두 확장

방법: Windows Phone 응용프로그램과 함께 참조 데이터베이스 배포

2012-02-09

Windows Phone OS 7.1 에서는 참조 데이터를 로컬 데이터베이스에 저장하고 Windows Phone 응용프로그램과 함께 배포할 수 있습니다. 응용프로그램이 단말기에 설치된 후 읽기 전용 연결을 위해 참조 데이터베이스를 설치 폴더에 그대로 두거나 읽기/쓰기 작업을 위해 격리된 저장소에 복사할 수 있습니다. 이 항목에서는 참조 데이터베이스를 만들고 응용프로그램에서 사용하는 프로세스에 대해 설명합니다. 로컬 데이터베이스 사용에 대한 자세한 내용은 Windows Phone의 로컬 데이터베이스 개요를 참조하십시오.

중요중요:

데스크톱에서 만든 Microsoft SQL Server CE(SQL Server Compact) 데이터베이스는 Windows Phone 응용프로그램에서 작동할 수도 있지만 공식적으로 지원되지 않습니다.

기본 응용프로그램과 함께 배포할 로컬 데이터베이스를 만들려면 도우미 응용프로그램이 필요합니다. 도우미 응용프로그램은 개발 컴퓨터에서 실행되며, 격리된 저장소에 로컬 데이터베이스를 만들고, 데이터베이스에 원하는 참조 데이터를 로드합니다.

이 단원에서는 도우미 응용프로그램을 만들고, 도우미 응용프로그램을 사용하여 참조 데이터베이스를 만든 다음 격리된 저장소 탐색기(ISETool.exe)를 사용하여 로컬 데이터베이스 파일을 추출하고 컴퓨터에 저장합니다. 격리된 저장소 탐색기에 대한 자세한 내용은 방법: 격리된 저장소 탐색기 도구 사용을 참조하십시오.

참조 데이터베이스를 만들려면

  1. 로컬 데이터베이스를 만들고 이 데이터베이스에 참조 데이터를 로드하는 도우미 응용프로그램을 만듭니다. 자세한 내용은 방법: Windows Phone용 기본 로컬 데이터베이스 응용프로그램 만들기방법: Windows Phone의 로컬 데이터베이스 응용프로그램(MVVM 포함) 만들기를 참조하십시오.

  2. 도우미 응용프로그램을 Windows Phone 에뮬레이터나 Windows Phone 단말기에 배포합니다.

  3. 도우미 응용프로그램을 적절하게 실행하여 로컬 데이터베이스를 만들고 이 데이터베이스에 참조 데이터를 로드합니다. 모든 로컬 데이터베이스는 격리된 저장소에 생성됩니다.

  4. WPAppManifest.xml 파일의 App 요소에 대한 ProductID 특성에 지정된 응용프로그램의 Product GUID를 가져옵니다. 제품 GUID는 격리된 저장소에서 로컬 데이터베이스 파일을 복사할 때 필요합니다.

  5. 테더링된 단말기나 에뮬레이터가 실행되고 있는 동안 격리된 저장소 탐색기를 사용하여 로컬 데이터베이스를 컴퓨터에 복사합니다. 자세한 내용은 방법: 격리된 저장소 탐색기 도구 사용을 참조하십시오.

로컬 데이터베이스 파일을 컴퓨터에 저장한 후 다른 형식의 종료 중인 파일을 추가할 때와 동일한 방식으로 기본 응용프로그램에 추가할 수 있습니다.

참조 데이터베이스를 응용프로그램에 추가하려면

  1. Visual Studio에서 참조 데이터베이스를 사용하는 Windows Phone 응용프로그램에 대한 프로젝트를 만듭니다. 이 응용프로그램은 기본 응용프로그램이며, 도우미 응용프로그램과는 다른 응용프로그램입니다.

  2. 기본 응용프로그램의 프로젝트 메뉴에서 기존 항목 추가를 선택합니다.

  3. 기존 항목 추가 메뉴에서 격리된 저장소 탐색기를 사용하여 컴퓨터에 저장한 로컬 데이터베이스 파일을 선택하고 추가를 클릭합니다. 로컬 데이터베이스가 프로젝트에 추가됩니다.

  4. 솔루션 탐색기에서 로컬 데이터베이스 파일을 마우스 오른쪽 버튼으로 클릭한 다음 파일이 콘텐츠로 빌드되고 항상 출력 디렉터리에 복사되도록(항상 복사) 파일 속성을 설정합니다.

응용프로그램과 함께 배포한 로컬 데이터베이스는 배포 후 설치 폴더에 저장되어 있습니다. 설치 폴더는 읽기 전용입니다. 기본 응용프로그램은 이 폴더에서 읽기 전용 방식으로 로컬 데이터베이스에 연결하거나 읽기/쓰기 작업을 위해 격리된 저장소에 복사할 수 있습니다. 이 단원에서는 이러한 두 가지 옵션에 대해 자세히 설명합니다.

설치 폴더에서 읽으려면

  • 설치 폴더의 참조 데이터베이스에 연결하는 경우 연결 문자열의 File Mode 속성을 사용하여 연결을 읽기 전용으로 지정해야 합니다. 다음 예제에서는 설치 폴더에 대해 읽기 전용 연결을 만드는 방법을 보여 줍니다. 연결 문자열에 대한 자세한 내용은 Windows Phone의 로컬 데이터베이스 연결 문자열을 참조하십시오.

    // Create the data context.
    MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");
    

    이 예제에서는 파일 경로에 appdata 접두사를 사용하여 설치 폴더의 경로(appdata)와 격리된 저장소의 경로(isostore)를 구분합니다. 접두사가 없으면 데이터 컨텍스트에서 격리된 저장소의 경로를 적용합니다.

참조 데이터베이스를 격리된 저장소에 복사하려면

  • 설치 폴더의 참조 데이터베이스를 격리된 저장소에 복사하려면 스트림 기반 복사를 수행합니다. 다음 예제에서는 설치 폴더 루트의 로컬 데이터베이스 파일 ReferencedDB.sdf를 격리된 저장소 컨테이너의 루트에 복사하는 MoveReferenceDatabase라는 메서드를 보여 줍니다.

    using System;
    using System.IO;
    using System.IO.IsolatedStorage;
    using System.Windows;
    
    
    namespace PrimaryApplication
    {
        public class DataHelper
        {
    
            public static void MoveReferenceDatabase()
            {
                // Obtain the virtual store for the application.
                IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
    
                // Create a stream for the file in the installation folder.
                using (Stream input = Application.GetResourceStream(new Uri("ReferenceDB.sdf", UriKind.Relative)).Stream)
                {
                    // Create a stream for the new file in isolated storage.
                    using (IsolatedStorageFileStream output = iso.CreateFile("ReferenceDB.sdf"))
                    {
                        // Initialize the buffer.
                        byte[] readBuffer = new byte[4096];
                        int bytesRead = -1;
    
                        // Copy the file from the installation folder to isolated storage. 
                        while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
                        {
                            output.Write(readBuffer, 0, bytesRead);
                        }
                    }
                }
            }
        }
    }
    
    

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

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