본문 바로가기
Programming/Windows Phone

Visual Studio에서 Windows Phone Applicaion 프로젝트 만들기

by 강철 벼룩 2010. 12. 1.


Microsoft Visua Studio 2010(앞으로 VS 2010으로도 표시한다)나 Microsoft Visual Stuido 2010 Express for Windows Phone(VS 2010 Express와 Windows Phone 개발자 도구를 설치한 경우)를 실행하고 "Silverlight for Windows Phone Application" 프로젝트를 통해서 첫 번째 애플리케이션을 만들어 보자.

1. [시작]-[모든 프로그램]-[Microsoft Visua Studio 2010]-[Microsoft Visua Studio 2010]을 클릭하고 VS 2010을 실행한다.

2. [File]-[New Project]를 선택한다.

3. [New Project] 대화상자의 템플릿 목록에서 "Silverlight for Windows Phone" 범주의 "Windows Phone Application" 템플릿을 선택한다. 그 다음 [Location] 필드에 앞 시간에 설치한 트레이닝 킷 Lab의 Source 폴더에서 "Ex1-CreatingWP7AppsWithVisualStudio"를 선택하고 Name 필드에 "HelloPhone"이라고 입력한다. [Solution Name] 필드에는 "Begin"이라 입력하고 [OK]를 클릭한다.

[그림 19]


4. 솔루션 탐색기에서 윈도우 폰 애플리케이션 템플릿이 생성한 솔루션의 구조를 살펴보자. 모든 Visual Studio 솔루션은 관련된 프로젝트들을 위한 컨테이너다. 이 경우 HelloPhone이라는 하나의 "Silverlight for Windows Phone" 프로젝트를 담고 있다.

[그림 20]

HelloPhone 프로젝트에 표시된 항목들을 다음 [표 1]에서 설명했다.

[표 1]

 항목  설명
 App.xaml/App.xaml.cs  애플리케이션의 진입점을 정의하고 애플리케이션에 사용되는 리소스를 초기화 하며, 애플리케이션 사용자 인터페이스를 표시한다.                               
 MainPage.xaml / MainPage.xaml.cs  애플리케이션의 사용자 인터페이스를 가진 페이지를 정의한다.
 ApplicationIcon.png  폰의 애플리케이션 목록에서 해당 애플리케이션 아이콘을 표시하는 이미지 파일이다.
 Background.png  시작 화면에서 애플리케이션 아이콘을 나타내는 이미지 파일이다.
 SplashScreenImage.jpg  애플리케이션을 실행할 때 처음 표시될 이미지다. 스플래시 스크린은 사용자에게 애플리케이션일 실행중라는 피드백을 제공하고 첫 번째 페이지에 대한 탐색이 완료될 때까지 표시된다. 스플래시 스크린은 애플리케이션을 빠르게 로드하는 인상을 주기위해 첫 번째 페이지와 유사한 인상을 준다.
 Properties\AppManifest.xml  애플리케이션 메니페스트 파일로 애플리케이션 패키지를 생성하는데 필요하다.
 Properties\AssemblyInfo.cs  생성된 어셈블리에 내장된 이름과 버전 메타데이터를 담고 있다.
 Properties\WMAppManifest.xml  윈도우 폰 실버라이트 애플리케이션에 관련된 특정 메타데이터를 포함하는 메니페스트 파일로, Silverlight for Windows Phone에 대해서만 사용가능한 특정 기능을 담고 있다.
 References 폴더  애플리케이션이 동작하는데 필요한 서비스와 기능을 제공하는 라이브러리(어셈블리) 목록


5. 먼저 [솔루션 탐색기]에서 App.xaml을 오른클릭하고 [View Designer]를 선택한다. 이 파일은 Application 이라는 루트 요소와 그 내부에 Application.Resources 섹션을 가진 XAML 마크업을 담고 있다. Application.Resources 섹션안에서 애플리케이션에 사용되는 색상, 브러시, 스타일 개체와 같은 애플리케이션 수준 리소스를 정의할 수 있다.

이 XAML 코드는 Application 의 ApplicationLifetimeObjects 속성을 초기화해 PhoneApplicationService 개체를 생성한다. PhoneApplicationService 클래스는 애플리케이션의 수명주기의 여러 측면에 대한 접근을 제공한다. 이것은 애플리케이션의 이상적인 동작의 관리와 이 서비스가 활성화되거나 비활성화 될 때 애플리케이션의 관리를 포함한다.

[그림 21] Windows Phone 애플리케이션 템플릿으로 생성한 기본 App.xaml 파일


6. [솔루션 탐색기]에서 App.xaml을 오른클릭하고 [View Code]를 선택해 코드 숨김 파일을 연다. 생성자에서 이 Application에서 상속된 클래스는 이미 UnhandledException 이벤트에 대한 핸들러를 이미 구독하고 있다. Applicaton 클래스에서 RootFrame 속성 부분은 해당 애플리케이션의 시작 페이지를 식별한다. 모든 윈도우 폰 애플리케이션은 하나의 최상위 수준 컨테이너 요소를 가지고 있고 이 요소의 데이터 타입은 PhoneApplicationFrame이다. 이 프레임은 애플리케이션에 대한 콘텐츠를 나타내는 하나 이상의 PhoneApplicationPage 요소를 호스트 한다. 이 프레임은 페이지간의 탐색도 처리한다.

[그림 22] 전역 이벤트 핸들러를 표시하는 애플리케이션 코드 숨김 파일


Silverlight for Windows Phone 애플리케이션에 의해 만들어진 Application 클래스는 Launching과 Closing 이벤트에 대한 핸들러도 포함한다. 이들 메서드를 업데이트해 윈도우 폰 애플리케이션을 시작하고 종료할 때 커스텀 코드를 실행할 수 있다.


7. 만들어진 프로젝트에는 애플리케이션의 주 UI를 정의하는 XAML 마크업을 담고 있는 기본문서를 포함한다. 디자이너에서 이 파일을 보려면, [솔루션 탐색기]에서 MainPage.xaml을 더블클릭한다.

기본적으로 디자이너는 해당 문서를 분할 뷰로 표시한다. 한 창은 XAML 마크업을 표시하고 다른 창은 사용자 인터페이스 요소의 WYSIWYG 화면으로 디자인 뷰를 표시한다.애플리케이션 이름과 제목을 표시하기위해 템플릿에 의해 포함된 요소들(필요하지 않다면 제거 가능)을 제외하면, XAML 문서는 빈 캔버스를 제공하는데, 여기에 컨트롤들을 추가해 애플리케이션의 사용자 인터페이스를 만든다.

[그림 23] 애플리케이션의 주 사용자 인터페이스를 표시하는 XAML 디자이너

XAML(Extensible Application Markup Language)은 선언형 언어다. 선언형 XAML 마크업으로 UI 요소를 만들 수 있다. 별도의 코드 숨김 파일을 사용해 이벤트에 응답하고 XAML로 선언한 개체를 조작할 수 있다. XAML 기반 선언형 언어는 아주 직관적이어서 프로토타입에서 제품이 되는 인터페이스를 만드는데 유용하며, 특히 웹 디자인과 기술에 배경을을 가진 사람들에게 편리하다.


8. Application.png 파일은 폰의 빠른 실행 화면에서 애플리케이션을 식별하는 아이콘을 담고 있다. [솔루션 탐색기]에서 해당 항목을 더블클릭해 파일을 열어 관련 그림 편집 도구로 편집할 수 있다.

9. 윈도우 폰 애플리케이션은 전형적으로 기초가 되는 플랫폼이나 다른 라이브러리에 의해 제공되는 서비스를 이용한다. 이 기능을 사용하려면, 애플리케이션은 이들 서비스를 구현하는 해당 어셈블리를 참조해야 한다. 프로젝트에서 참조하는 어셈블리를 표시하려면 [솔루션 탐색기]에서 [References] 노드를 확장하고 해당 목록을 살펴보자. 여기에는 정규 실버라이트 어셈블리 뿐만 아니라 윈도우 폰 플랫폼관련 어셈블리가 있다.

[그림 24] 솔루션 탐색기에서 프로젝트가 참조하는 어셈블리 표시 



10. 아래 그림에서 보인것 처럼 프로젝트의 속성 창에서 WP 메니페스트 파일을 편집한다. 이 창을 열어보려면, [솔루션 탐색기]에서 HelloPhone 프로젝트를 오른 클릭하고 [속성]을 선택한다.

[그림 25] 프로젝트 속성 창


윈도우 폰 프로젝트 속성 창을 사용하면 폰 관련 속성을 수정할 수 있다. 이들 속성은 장치상의 애플리케이션 배포와 표시에 관련된다. 이 파라미터들은 WMAppManifest.xml 파일에 저장된다. XML 파일을 직접 변경했더라도 이 창에서 프로젝트 설정을 변경하고 저장할 때마다 덮어쓰게 된다.